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

How to force npm to install specific version of package by default?

有没有办法配置 npm 不使用像这样的惰性版本安装包:

"coffee-script": "^1.11.1",

但是

"coffee-script": "1.11.1",

这种行为是否已成为默认行为?我们通常不想使用惰性版本,我更喜欢不时手动将所有内容升级到最新版本,而不是在新部署后由于我的一个依赖项中的错误而在我面前抛出错误。

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

我建议使用 npm shrinkwrap。 它将创建 npm-shrinkwrap.json 指定当前使用的依赖项版本,然后 npm install 将遵守该版本。

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

参见:https://docs.npmjs.com/cli/shrinkwrap

这是将 npm 配置中的用户变量设置为 在执行所有包的 npm 安装时始终默认使用确切版本 的命令。

在您的终端中输入此命令:

npm config set save-exact=true

新首选项存储在基于用户的自定义 npm 配置文件中。它位于此处:

~/.npmrc

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

npm config ls

官方 NPM 文档在这里:

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

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