纵深应用react-native的热更新能力,必须掌握的多个shell命令

有点跑题了,再一次准备回归正题.说到多少个main.bundle
相比较diff出四个差集,网上切磋的很多,我们搜下,勉强有个别有个别可以借鉴的.index.jsbundle文件本人的diff,小编一时半刻不考虑,感觉没供给,压缩后
唯有 300 k的东西,还不值得自个儿去改热更新的兑现代码,而且 jsbundle
自己的编写制定向来在变,比如近年来的 jsbundle 都有个了一个相应的
index.jsbundle.meta
文件,原来的宏图,大概是有题指标;作者后天要钻探的只是,文件级其余相比较操作–容易说,便是找到四个公文夹中不等同的文件,放到第多少个文本夹中,就那样.

好呢,不要又吐槽小编说, main.bundle 里,是不会卷入未使用的图形的;
小编的确是,手动把图片放到 main.bundle 里的,里面新建个 native
文件夹,用于放置 native 代码须要的有个别财富,那样 native
代码,也能够部分施用 热更新的逻辑了.将来类型中,热更新的逻辑有两有些:
JSPatch 和 react-native,小编是因而 三个 补丁类型字段来区分的.假如为 native
和 react单独分开设计
热更新机制,想想都心累–恐怕说,有点太懒,某些代码,还不想去动.–别怪小编话多,那是1个很有价值的国策,固然你也是遵照Native来混编react-native的话,可能有种一语中的可能豪杰所见略同的觉得,就算自个儿只在iOS上试验过.

好像的例子,小编是见过一些,有死在 node 环境陈设的,有卡在 native
已有应用无法集成的,当然,也有卡在不清楚 怎样出手使用 react-native的
的热更新能力的.

再有正是,react-native
小编很看好它,就算它很有或许以往把本人自身的饭碗给砸了.任其自然,不能;浪潮之下,要么驾车,要么被压平成路,硬着头皮上呢,万一大家以往都用这一个搞了呢…

好吧,脚本本身确实不难,只是自小编要好刚刚供给选用,google出来,再享受给大家而已.笔者深信,一个纵深应用
react-native
到花色中,并且相比较注重其得以热更新天性的人,是听其自然有其一供给的;而且,小编也清楚,他们一定一部分,要么不可能确切地问出难点,要么傻傻地团结去写
文件夹相比的代码…笔者不能说那畸形,小编想说的是: 编制程序那种东西,
多学点总是好的.此处奉上原始google参考链接,与原来答案有细微不一样,懂shell的人,一眼就看的出来,不懂的,测度固然搜到答案,也有十分大可能率弄不出去结果.链接奉上:
http://serverfault.com/questions/506005/compare-2-directories-and-copy-differences-in-a-3rd-directory
http://unix.stackexchange.com/questions/24134/remove-empty-directory-trees-removing-as-many-directories-as-possible-but-no-fi

热更新,自个儿机制的筹划,网上研究的也是有一些,三个最简化的模子是:
react-native 是根据 main.bundle 加载的; main.bundle
自个儿是二个文本夹;每一遍打开app,都去查看有无最新的
main.bundle,有就下载更新本半夏件即可.blablalba…..会涉及到许多细节难题,但自个儿深信不疑,1个搞Native开发的人,是都能够单独解决的.

毫不吐槽说,流程能够更优化,消除的难点更快,那关系到另贰个话题,改日有心境再聊.

开篇以前,先讲八个祥和开发中的三个小插曲:

理所当然是局地, shell 脚本嘛,什么不可能搞,如下:

rsync -aHxv --progress  --compare-dest=$(pwd)/main_old.bundle/ $(pwd)/main_new.bundle/ $(pwd)/main.bundle/
find $(pwd)/main.bundle/ -type d -empty -delete

明天周五,iOS版 App
周六提交,周五审核通过上架,很给力.但是,深夜11:30的时候,运转就反应某个页面有3个很显著的标题,页面没办法拉到头部,部分新闻展现不全;这一个页面是依照react-native写的,项目中自个儿已经有了热更新的相干机制;原因很简单,13:00左右,化解难题,发了3个补丁,测试环境自测完结;补丁发给Leader,他得以交到到线上;出去吃饭,13:00
回来午休;14:00,Leader回到工位,补丁提交到线上;确认补丁生效,难题消除.

美学原理,有人说,能够比较 md5
什么的–当然也是能够的;可是,作者昨日不想去知道那几个规律,只怕说,原理笔者是知情的,笔者不想去达成这段代码,没写过,何人知道有啥坑呢?比如,文件目录结构怎么着保存什么的.作者想精晓的是,有没有一种简易的艺术,3个ctrl+c
ctrl+v,就足以一向拿走答案难题的形式?

小插曲而已,看看就好.作者只是想让大家知晓,react-native自己,或然对你的政工,确实是叁个很有意义的工具,仅此而已.许多人,也是肯定
react-native
的价值的,然而或然并从未在祥和的品种中动用,而从不采用的原由,相对一部分缘由,是很难通晓.从自小编当下的举行来看,没有二个力所能及同时自由领会Native和react栈的技术职员存在,二个技术组是很难有大概把react-native应用起来的.因为中期,必须有
native 技术栈的人,去填补一些只怕用react相比难得以实现的功用;中中期,又必须 有
react
技术栈的人,来深入地运用react本人的技术栈,来增强支付功效,比如redux的行使等.

今日,要说的标题是, main.bundle
里,是含有全数的能源文件的,现在发补丁,小编是总体 把最新的 完整的
main.bundle 发出去了,本身压缩后,不到
1M,和多个大图片也大都,基本用户无感;但笔者今日是内需稳步把原生的一对代码,慢慢迁移到
react 来的,个中的相比基础也正如根本的一步是,把
原先Native代码中的能源文件,迁移到 main.bundle 里,使用 main.bundle 管理.

一旦依据没有热更新能力的消除流程,大约会是: 11:30 发现问题,13:00
消除,确认测试环境生效;生成测试包,上传
提交;人品好的话,可以走热切审核;3~5天后,难点修复.3~5天的审核期,有人以为相当短,有人曾经不乏先例.