React|React Native打包总结
打包的命令
react-native bundle命令,其中参数如图所示:
文章图片
react-native bundle的参数介绍 其中主要参数的含义是:
- entry-file:js的根文件,在RN中一般是index.js或index.android.js/index.ios.js
- platform:平台,iOS或Android
- dev:开发者模式,若是false,警告会被禁止,bundle文件会被压缩
- bundle-output: 生成的bundle文件名
- assets-dest: 资源文件的文件夹
android:
react-native bundle --entry-file ./index.js --dev false --bundle-output ./android/app/src/main/assets/bundle/index.android.jsbundle --assets-dest ./android/app/src/main/res/ --platform androidios基本类似:
react-native bundle --entry-file ./index.js --dev false --bundle-output ./ios/index.ios.jsbundle --assets-dest ./ios --platform ios
这些打包命令很长,参数多,我们可以在package.json文件中添加这些脚本命令:
"scripts": {
"bundle-android": "react-native bundle --entry-file ./index.js --dev false --bundle-output ./android/app/src/main/assets/bundle/index.android.jsbundle --assets-dest ./android/app/src/main/res/ --platform android",
"bundle-ios": "react-native bundle --entry-file ./index.js --dev false --bundle-output ./ios/index.ios.jsbundle --assets-dest ./ios --platform ios",
}
以后我们打bundle离线包,只需要执行npm脚本
npm run bundle-android
和npm run bundle-ios
即可。bundle文件分析
为了方便分析bundle文件的构成,研究打包的原理。我们打dev模式下的bundle包进行分析。
dev模式下的bundle文件
文章图片
dev模式下的bundle文件 【React|React Native打包总结】bundle文件中的js代码主要由三部分组成:
- 1.文件起始部分的polyfill代码:是最早执行的方法,定义了require,defined等方法,以及JS新语法的兼容代码。
- 2.模块定义代码:模块的定义声明。每一个__d方法代表一个js文件模块的定义。
- 3.模块的调用:
-
文章图片
define方法(__d方法)
文章图片
metroRequire方法(__r方法)
推荐阅读
- Beego打包部署到Linux
- react|react 安装
- React.js学习笔记(17)|React.js学习笔记(17) Mobx
- React.js的表单(六)
- 【React|【React Native填坑之旅】从源码角度看JavaModule注册及重载陷阱
- react-navigation|react-navigation 动态修改 tabBar 样式
- jar|springboot项目打成jar包和war包,并部署(快速打包部署)
- Flutter|Flutter SwiftUI React 对比
- React|React refs和onRefs的使用
- 手写|手写 React-Native 方法调用式的 Modal 弹框、Toast 提示