問題
自從 React-Native (以下簡稱 RN) 升級到 0.14 版本之后鳖悠,我就發(fā)現(xiàn)每次從 xcode 啟動程序變慢了贱迟,慢了大約有10秒左右。這件事情一次兩次還能忍覆获,但是每次如此實在是浪費生命墩新。這是什么原因呢贸弥?經(jīng)過一番嘗試,我發(fā)現(xiàn)問題出在這里:
這個 react-native-xcode.sh
花費了大約10秒的時間海渊。那么這個腳本干了什么呢绵疲?打開這個文件可以看到哲鸳,它的主要工作就是生成 js bundle:
...
react-native bundle \
--entry-file index.ios.js \
--platform ios \
--dev $DEV \
--bundle-output "$DEST/main.jsbundle" \
--assets-dest "$DEST"
在 RN 0.14 之后,你已經(jīng)不需要手工執(zhí)行 react-native bundle
來生成 main.jsbundle
最岗,取而代之的就是 ** “每次執(zhí)行都生成!” **帕胆。這就是慢的原因。
解決
知道原因之后是否可以解決這個問題呢般渡?很簡單懒豹,你只要在 react-native-xcode.sh
頭上加幾行:
if [ "$CONFIGURATION" = "Debug" ]; then
echo "--- Skip bundle building in 'Debug' mode"
exit 0
fi
這樣就可以恢復(fù)到原來的“高速”執(zhí)行的方式了。
Issue
我后來發(fā)現(xiàn)驯用,這個問題有一個對應(yīng)的 issue脸秽。原本是 Asset System 的作者“當(dāng)時”(4個月前)提出新的 Asset System 的實現(xiàn)構(gòu)想。結(jié)果當(dāng)新 Asset System 發(fā)布后蝴乔,又帶來了這個新問題记餐。而這個問題目前顯然不在 FB 的考慮范圍內(nèi),所以自己改吧薇正。