React项目运行未采用package.json指定版本该如何处理?
认知澄清
npm view react version查询的是npm远程仓库的最新react正式版本,和本地项目、全局安装的版本无关,返回17.0.2属于正常情况,不能作为项目实际使用版本的判断依据。
排查项目实际react版本
在项目根目录执行以下命令,查看项目内安装的react版本:npm ls react
如果返回结果确实不是16.13.1,按以下步骤处理:
强制项目使用指定react版本
- 清理旧依赖与缓存
- 手动删除项目根目录下的
node_modules文件夹 - 手动删除项目根目录下的
package-lock.json文件 - 执行缓存清理命令:
npm cache clean --force
- 手动删除项目根目录下的
- 锁定版本号
打开package.json,将react依赖的版本号前的^符号删除,修改为"react": "16.13.1"。^符号默认允许安装兼容的更高次版本,去掉后会严格安装指定的16.13.1版本。 - 重装依赖
执行npm install重新安装所有依赖。 - 验证版本
安装完成后再次执行npm ls react,确认返回版本为16.13.1即可。
降级全局react版本
如果需要将终端全局安装的react版本降级到v16,执行以下命令:npm install -g react@16.13.1
执行npm ls -g react即可验证全局安装的版本。
环境适配说明
以上所有命令都可以在Windows 10的Git Bash中直接运行,无兼容问题。
内容的提问来源于stack exchange,提问作者Kyle McCaf
相关产品推荐
相关产品推荐

