npm view与package.json中react-scripts版本不一致原因
问题根因
你的操作没有错误,核心是对npm view命令的作用存在误解:
npm view react-scripts version命令的作用是查询npm远程仓库上react-scripts当前发布的最新稳定版本,不会读取你本地项目、全局环境安装的包版本。返回5.0.1是该包当前在远程源的最新正式版本,和你本地安装的版本没有关联。- 全局环境未安装react-scripts也不会影响该命令的返回结果,因为这个命令本身就不会扫描本地全局包目录。
本地安装版本的正确查询方式
如果要确认当前项目内实际安装的react-scripts版本,使用以下命令即可:
- 查询项目本地依赖版本(推荐):
npm list react-scripts
执行后输出结果中显示的版本号,就是你项目node_modules里实际安装的版本,如果显示react-scripts@3.0.1就说明依赖安装符合预期。
- 快速校验本地包版本声明:
findstr "version" node_modules/react-scripts/package.json
- 如果要查询全局是否安装某包、对应版本是什么,再加
-g参数即可:
npm list -g react-scripts
额外校验提示
你也可以直接打开项目根目录下的package-lock.json文件,搜索react-scripts字段,里面记录的版本就是npm实际安装的版本。
注意:如果你的package.json中react-scripts的版本声明带^/~等范围符号(比如^3.0.1),npm安装时会自动匹配对应大版本/小版本下的最高兼容版本,但不会跨大版本升级到5.x,不会出现版本不符合预期的问题。
内容的提问来源于stack exchange,提问作者Maxim Rudnev
相关产品推荐
相关产品推荐

