如何强制npm默认安装特定版本的软件包?

有没有一种方法来configurationnpm不使用像以下这样的懒惰版本来安装软件包:

"coffee-script": "^1.11.1", 

 "coffee-script": "1.11.1", 

并有这种行为成为默认的? 我们通常不想使用懒惰的版本,我更喜欢手动将所有内容升级到最新版本,而不是因为我的某个依赖关系中的错误而在新部署之后在我的面前出现了一个错误。

现在唯一的方法就是每次npm install后手动删除^字符,这有点无聊。

这是在npmconfiguration中设置一个用户variables的命令,在执行所有软件包的npm安装时总是默认使用确切的版本

在terminal中input此命令:

 npm config set save-exact=true 

新的首选项存储在一个基于用户的自定义npmconfiguration文件中。 它位于:

 ~/.npmrc 

最后,您可以使用以下命令validation设置是否已保存:

 npm config ls 

官方NPM文档在这里:

https://docs.npmjs.com/misc/config

https://docs.npmjs.com/files/npmrc

我build议使用npm shrinkwrap 。 它将创buildnpm-shrinkwrap.json,它指定了你的依赖关系的当前使用版本,然后npm install将会兑现它。

然后,如果要升级所有依赖项,请删除npm-shrinkwrap.json文件,运行npm install并重新运行npm shrinkwrap。 或者,要升级单个软件包依赖项,请运行npm install --save <package-name> 。 这将用更新后的版本信息更新npm-shrinkwrap文件。

请参阅: https : //docs.npmjs.com/cli/shrinkwrap