React-Native 构建jsbundle包&&配置code

2020-09-04  本文已影响0人  iOS小童

构建js.bundle包

<!--模版-->

react-native bundle --platform ios --entry-file index.js --bundle-output <file> --dev false --assets-dest <file>

<!--生成bundle到iOS工程中-->

react-native bundle --platform ios --entry-file index.js --bundle-output ./ios/ReduxProject/main.jsbundle --dev false --assets-dest ./ios/ReduxProject/

<!--生成bundle到指定目录-->

react-native bundle --platform ios --entry-file index.js --bundle-output ./bundles/ios/main.jsbundle -- dev false --assets-dest ./bundles/ios/

可以把脚本写到package.json的script里面

 "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "start": "react-native start",
    "test": "jest",
    "lint": "eslint .",
    "react-native bundle": "react-native bundle --platform ios --entry-file index.js --bundle-output ./ios/ReduxProject/main.jsbundle --dev false --assets-dest ./ios/ReduxProject/"
  },

出现问题

error SHA-1 for file /usr/local/lib/node_modules/react-native/node_modules/metro/src/lib/polyfills/require.js (/usr/local/lib/node_modules/react-native/node_modules/metro/src/lib/polyfills/require.js) is not computed. Run CLI with --verbose flag for more details.

需要去更新react-native-cli, 再重新构建

npm install -i -g --force react-native-cli

热更新code-push

ReactNative之code-push 热更新

安装code-push-cli

<!--仅仅只安装code-push-cli可能会提示你...no longer supported-->

npm install -g appcenter-cli 或 npm install -g code-push-cli

appcenter.png

账号登录

账号登录 (已登陆过可以无需再登)
code-push login # 登陆
会弹出登录网页,输入正确账号密码,会返回key,输入终端即可

code-push whoami # 登录完成后通过该指令确认账号是否正确

未登录

code-push register #

查看账号下app的版本

code-push app list

查看历史提交记录

 code-push deployment history  ReactNativeApp Staging

codepush.png

如果发现code-push 找不到

echo $PATH
查看当前的环境配置
/Users/tong/.npm-global/bin:/Users/tong/.npm-global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/tong/Library/Android/sdk/platform-tools:/usr/sbin:/usr/sbin:/Users/tong/Library/Android/sdk/platform-tools

立即生效设置的zshrc

source ~/.zshrc

which npm 查看npm的地址

/Users/tong/.npm-global/bin/npm

开始进行热更新

cd 当前项目

code-push release-react ReactNativeApp ios --t 1.6.1 --dev false --d Staging --des "tong.test" --m true

刚才我们安装的 npm 是在 /usr/local/ 目录下,默认的全局 node_modules 文件夹也是在这个目录下面,后续如果通过 npm 安装全局的命令时会出现一些权限上的问题。我的建议是修改全局 node_modules 文件夹的位置,把它改到我们自己的用户目录下。首先在 home 目录下新建一个给 npm 用的文件夹,比如 ~/.npm-global ,然后新建一个 ~/.npmrc 文件,在里面写上 prefix=~/.npm-global 。这时我们再使用 npm i -g webpack 安装全局命令时,都会被安装到这个文件夹里了,执行 ls ~/.npm-global/bin 就能看到刚刚安装的 webpack 了。

最后,我们需要把 ~/.npm-global/bin 加入到 PATH 变量里面,这样执行 webpack 时就能在 ~/.npm-global/bin 目录下找到它了。一般地,就是在 ~/.bash_profile 里增加 export PATH="HOME/.npm-global/bin:PATH" 如果你使用的是其他 shell ,修改方法也是类似的。修改之后需要重新加载一下配置,执行 source ~/.bash_profile 或者新开个 tab 生效。

上一篇下一篇

猜你喜欢

热点阅读