美学原理纵深应用react-native的热更新能力,必须明白之一个shell命令

开业之前,先谈一个自己开支被的一个聊插曲:

今天星期,iOS版 App
周一提交,周三对通过上架,很让力.不过,中午11:30之时节,运营就是反应有页面有一个百般明朗的题材,页面没法关到脚,部分信息展示不咸;那个页面是依据react-native写的,项目被本身就来矣热更新的有关机制;原因颇简单,13:00左右,解决问题,发了一个补丁,测试环境自测了;补丁发给Leader,他得以交给到线达;出去吃饭,13:00
回来午休;14:00,Leader回到工位,补丁提交至丝达;确认补丁生效,问题解决.

绝不吐槽说,流程可以再优化,解决的题目再快,这关系到其他一个话题,改日有心情再次聊.

如依没有热更新能力的化解流程,大致会是: 11:30 发现题目,13:00
解决,确认测试环境生效;生成测试包,上传
提交;人品好之话语,可以倒紧急审核;3~5上后,问题修复.3~5天的审核期,有人看不行丰富,有人曾习以为常.

小插曲而已,看看就算好.我只是想给大家清楚,react-native本身,可能针对而的事务,确实是一个老有含义的工具,仅此而已.许多口,也是承认
react-native
的价的,但是或许连没有以自己之花色遭到以,而没有应用的因由,相对一部分由,是老麻烦驾驭.从自我时底实行来拘禁,没有一个克同时自由驾驭Native和react栈的技术人员存在,一个技术组是大为难发出或拿react-native应用起来的.因为前期,必须产生
native 技术栈的总人口,去填补一些或者因此react比较为难落实之意义;中后期,又得 有
react
技术栈的人,来深切地采取react本身的技术栈,来增强支付效率,比如redux的运等.

类似之事例,我是见了部分,有老于 node 环境布置的,有卡在 native
已发出以无法集成的,当然,也有卡在无晓 如何下手使用 react-native的
的热更新能力的.

热更新,本身机制的计划性,网上讨论的吗是生一对,一个顶简化的模型是:
react-native 是基于 main.bundle 加载的; main.bundle
本身是一个文件夹;每次打开app,都去查看有无时的
main.bundle,有就下载更新本地文件就可.blablalba…..会涉及到广大细节问题,但自深信,一个搞Native开发的口,是还得以单独解决之.

今日,要说的题材是, main.bundle
里,是含有的资源文件的,现在发补丁,我是任何 把最新的 完整的
main.bundle 发出去了,本身压缩后,不交
1M,和一个可怜图片为大多,基本用户无论感;但自身本凡内需逐步把原生的有代码,逐渐迁移至
react 来之,其中的比基础为比主要之一律步是,把
原先Native代码中的资源文件,迁移到 main.bundle 里,使用 main.bundle 管理.

好吧,不要以吐槽我说, main.bundle 里,是无见面卷入未用的图片的;
我真是,手动把图纸放到 main.bundle 里之,里面新建个 native
文件夹,用于放置 native 代码用之部分资源,这样 native
代码,也堪部分采取 热更新的逻辑了.现在档次受到,热更新的逻辑来零星有些:
JSPatch 和 react-native,我是经过 一个 补丁类型字段来分别的.如果为 native
和 react单独分开设计
热更新机制,想想都心累–或者说,有接触最为疲惫,有些代码,还非思量去动.–别怪我说话多,这是一个挺有价之策略,如果您啊是根据Native来混编react-native的言辞,或许有种植茅塞顿开或者英雄所见略同的感觉到,虽然自己不过在iOS上考试过.

起接触走题了,再次准备回归正题.说到个别只main.bundle
比较diff出一个差集,网上讨论的要命多,大家搜下,勉强有些出头可以借鉴的.index.jsbundle文件本身的diff,我临时无考虑,感觉没有必要,压缩后
只来 300 k的事物,还未值得自己去改热更新的兑现代码,而且 jsbundle
本身的编制一直当更换,比如最近之 jsbundle 都出只了一个相应的
index.jsbundle.meta
文件,原来的筹划,可能是产生题目的;我今天只要讨论的只是,文件级别的
对比操作–简单说,就是
找到两只公文夹着未平等之公文,放到第三个文件夹着,就立样.

有人说,可以比较 md5
什么的–当然为是足以的;但是,我今天休思去领悟这个规律,或者说,原理美学原理我是领略之,我无思量去落实这段代码,没写了,谁知道有啊坑呢?比如,文件目录结构如何保存什么的.我思念知道的凡,有没来一致种植简易的不二法门,一个ctrl+c
ctrl+v,就可一直拿走答案问题之方式?

自然是片, 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

哼吧,脚本本身确实无为难,只是自我好刚用采取,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
我十分看好她,虽然其怪有或将来拿自己自己的差事给黄了.大势所趋,没道;浪潮之下,要么开车,要么被压平成路,硬在头皮上吧,万一大家以后都因此之为了呢…