RN在实际开发中遇到的问题及解决方法

<img src="https://pic1.zhimg.com/50/v2-d23f8cb1d2525b29e5bd59a0f8f973fd_hd.jpg" data-rawwidth="2142" data-rawheight="1342" class="origin_image zh-lightbox-thumb" width="2142" src="//p2.ttnews.xyz/loading.gif" data-original="https://pic1.zhimg.com/v2-d23f8cb1d2525b29e5bd59a0f8f973fd_r.jpg"><img src="https://pic4.zhimg.com/50/v2-4c0989d82b6edcc7bce6e760acf3fa32_hd.jpg" data-rawwidth="1012" data-rawheight="1142" class="origin_image zh-lightbox-thumb" width="1012" src="//p2.ttnews.xyz/loading.gif" data-original="https://pic4.zhimg.com/v2-4c0989d82b6edcc7bce6e760acf3fa32_r.jpg">

RN在实际开发中遇到的问题及解决方法

7. NPM:

1)NPM与Cocoapods、Gradle、Maven相比,似乎Bug多了那么一些,在升级到5.X版本时,终于增加了package-lock.json,但是会导致你修改package.json来install失效,这时候请试着删掉package-lock.json再试试。

2)RN升级也是一种痛苦,经历过0.39 -> 0.40升级的诸位相信一定也有类似的体会。

3)只要你依赖的项目涉及跨平台的一些特性,或者用到了node-gyp,那么有很高几率在不同平台编译不通过,多数情况是在Mac可以通过,在Windows上却不行。在使用Realm、LeanCloud等SDK时都遇到过这种情况。

4)由于RN迭代速度很快,一些不经常更新的三方库可能干脆就跑不了了(虽然Swift的一些三方库也有这个问题,但是Swift迭代速度没有RN那么丧病),我现在仍然可以看到有些公司的iOS客户端仍然在用已经很久没有维护的ASI,但是没有见过有人用RN 0.2x版本时的package。

8. CI:

把一个平台的CI从写脚本到跑通对我来说大概需要一到两天的时间,然而你需要跑三个平台。额,应该不是乘以三倍的时间……

如果你做的是个开源的RN项目,用Travis做CI,可以看看这篇文章,然后自己试着搞一下,大概就能体会RN CI的痛苦

目前就想到这些,欢迎大家补充。

如果你们看了以后,仍然觉得解决RN的Bug很快乐,可以再试试把项目完全切换到RN,否则,还是考虑一下原生+RN的方式吧。


分享到:


相關文章: