1.  ~ + 版本号:例如 "tslint": "~5.11.0", 表示安装5.11.x的最新版本(不低于5.11.0), 但是不安装5.12.x,也就是说安装时不会改变大版本号和次要版本号;

        如图,npm install ts-node@7.0.0后,package.json文件中自动生成"ts-node": "~7.0.0"信息。

 2.  ^ + 版本号:例如 "tslint": "5.11.0", 表示安装5.11.0及以上的版本,但是不安装6.0.0, 也就是说安装时不会改变大版本号;

        如图,npm install xlsx@0.18.2后,package.json文件中自动生成"xlsx": "^0.18.2"信息。

3.  + 版本号:例如:"tslint": "5.11.0",表示安装5.11.0的指定版本。

        如图,npm install 后,项目将会安装指定版本依赖。

 注:即使安装包的时候安装的为指定版本,package,json中的版本号也有可能自动加上‘~’与‘^’,这极有可能会导致其他开发人员拉取代码并install时装成其他版本的依赖,导致未知的问题,这里需要格外注意!!!

本人亲身经历,由于node发展较快,许多小版本也是不兼容的,当尝试查看其他老项目时,在安装依赖时,有时候直接npm install后并不会成功启动项目,这时候,你可以尝试将package.json中的版本号前面所携带的‘~’、‘^’全部删除后重新安装依赖,这样可能会成功。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐