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的方式吧。


分享到:


相關文章: