RN解决(Mac):error:0308010C:digital envelope routines::unsupported
1.node安装路径,(我有一个朋友)之前使用Homebrew安装了某个版本的node,后来又听前端同事说nvm方便管理node版本,于是安装了nvm,使用nvm又安装了一个版本的node,导致进了个坑。卸载brew安装的node,清除缓存之后,美滋滋~楼主iOS,项目里集成了RN,升级了node版本之后,RN项目报错 error:0308010C:digital envelope routine
1.报错
楼主iOS,项目里集成了RN,升级了node版本之后,RN项目报错 error:0308010C:digital envelope routines::unsupported
2.报错原因
出现这个错误是因为 node.js V17版本中最近发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制。
3.解决方案
3.1版本降级,解决报错
卸载node.js17以上版本,安装node.js16版本,问题解决。(nvm很方便)
3.2修改配置文件
找到项目的package.json
文件,把自己对应的命令,加上&&
,写到启动项目的配置里面
"scripts": {
"start": "yarn react-native start",
"serve": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve",
"build": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build",
"build:report": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build --report"
},
还可以在.zshrc里加这一句,source ~/.zshrc 一下
export NODE_OPTIONS=--openssl-legacy-provider
保存退出之后运行RN项目 npm start,搞定!
4.注意
1.node安装路径,(我有一个朋友)之前使用Homebrew安装了某个版本的node,后来又听前端同事说nvm方便管理node版本,于是安装了nvm,使用nvm又安装了一个版本的node,导致进了个坑。卸载brew安装的node,清除缓存之后,美滋滋~
2.使用nvm作为node版本管理工具时,报错 React Native ios build : Can’t find node
error: Can’t find ‘node’ binary to build React Native bundle If you have non-standard nodejs installation, select your project in Xcode, find ‘Build Phases’ - ‘Bundle React Native code and images’ and change NODE_BINARY to absolute path to your node executable (you can find it by invoking ‘which node’ in the terminal)
这是Xcode找不到node,可以使用软连接的方式,将node链接到/user/local/bin/node目录上,Xcode即可找到node
ln -s $(which node) /usr/local/bin/node
更多推荐
所有评论(0)