让‘ npm install —— save‘ add a strong version to package.json 安装——为 package.json 添加一个严格的版本

当您运行 npm install --save somepackage时,它通常会在 package.json 中添加以下内容:

"dependencies": {
"somepackage": "^2.1.0"
}

因为版本前面有一个插入符号(^) ,这意味着如果您稍后运行 npm install,它可能会改为安装版本2.3.0。由于相当明显的原因,这可能是不受欢迎的。npm shrinkwrap是有用的,但不能真正解决问题。

我有几个问题:

  1. 在安装包时,是否可以指定希望将其设置为 package.json 中的特定版本(版本号前没有插入符号) ?
  2. 当将包发布到 npm 时,有什么方法可以防止在其他开发人员安装您的包时在版本之前包含插入符号的缺省情况?
24522 次浏览

To specify by default a exact version, you can change your npm config with save-exact:

npm config set save-exact true

You can also specify the prepend version with a tilde with save-prefix.

And, no you can't force user to update to a minor or a patch version, NPM uses semver and it's the recommend way of publishing packages.

Run:

npm install --save --save-exact my-module@my-specific-version

Adding an answer to make this advice easier to see.

You can change the default behaviour by using the --save-exact option.

// npm
npm install --save --save-exact react


// yarn
yarn add --exact react

I created a blog post about this if anyone is looking for this in the future.

https://www.dalejefferson.com/blog/how-to-save-exact-npm-package-versions/