升级React Native后执行npx react-native init报TypeError: cli.init is not a function
解决
TypeError: cli.init is not a function 问题 核心原因
React Native 0.70.x 版本不再兼容旧版全局 react-native-cli(2.0.1属于旧版本),官方从0.60+开始就推荐使用npx直接调用本地CLI,避免全局CLI版本冲突。
解决步骤
1. 彻底卸载全局的react-native-cli
执行以下命令完全移除全局CLI:
npm uninstall -g react-native-cli # 同时检查并移除可能存在的yarn全局安装版本 yarn global remove react-native-cli
2. 清理npm缓存(可选但推荐)
如果卸载后仍有残留问题,清理缓存:
npm cache clean --force
3. 使用正确的命令初始化项目
直接通过npx调用React Native官方提供的初始化命令,无需依赖全局CLI:
npx react-native@0.70.1 init my-prom
注意:指定版本号可以确保使用你需要的0.70.1版本初始化项目,避免npx拉取最新版。
4. 验证本地CLI是否正常
进入项目目录后,检查本地CLI是否可用:
cd my-prom npx react-native --version
应该会显示0.70.1版本,说明本地CLI已正确安装。
额外说明
- 后续开发中,所有react-native命令都建议使用
npx react-native xxx执行,而非直接调用react-native xxx,这样会自动使用项目本地安装的CLI版本,避免全局版本冲突。 - M1芯片设备上,如果后续遇到其他依赖问题,确保已安装Rosetta 2(部分旧依赖需要),并在终端中使用Rosetta模式(右键终端-显示简介-勾选"使用Rosetta打开")执行命令。
内容的提问来源于stack exchange,提问作者user938363
相关产品推荐
相关产品推荐

