本文共 2040 字,大约阅读时间需要 6 分钟。
对于新手来说,如果是混合开发或者纯RN应用开发好后,想打包上线了,却发现官方文档没有找到详细打包的流程文档,对于完全没有经验的新手真的不太好友。下面是参考资料总结而成:
react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ios/ios.jsbundle
参数:
--entry-file :ios或者android入口的js名称,比如index.ios.js --platform :平台名称(ios或者android) --dev :设置为false的时候将会对JavaScript代码进行优化处理。 --bundle-output,:生成的jsbundle文件的所在目录和名称,比如 ios/ios.jsbundle。在当前项目中,输入上面命令,然后在ios/目录下生成2个离线包:
$ react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ios/ios.jsbundle[2016-12-25 19:55:01]Initializing Packager[2016-12-25 19:55:01] Building in-memory fs for JavaScript[2016-12-25 19:55:01] Building in-memory fs for JavaScript (88ms)[2016-12-25 19:55:01] Building Haste Map[2016-12-25 19:55:02] Building Haste Map (1091ms)[2016-12-25 19:55:02] Initializing Packager (1212ms)[2016-12-25 19:55:02] Transforming files[2016-12-25 19:55:15] Transforming files (13122ms)bundle: startbundle: finishbundle: Writing bundle output to: ios/ios.jsbundle(node:8023) DeprecationWarning: Using Buffer without `new` will soon stop working. Use `new Buffer()`, or preferably `Buffer.from()`, `Buffer.allocUnsafe()` or `Buffer.alloc()` instead.bundle: Done writing bundle outputAssets destination folder is not set, skipping...
运行上面命令后,在项目的ios文件夹下看到ios.jsbundle
、ios.jsbundle.meta
。
修改AppDelegate.h的定向URL,需要注意的是名字要跟你生成的jsbundle的名字一致。
// jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"ios" withExtension:@"jsbundle"];
注:本文首发于 ,如若转载,请注明来源。