使`npm install --save`为package.json添加一个严格的版本

时间:2015-06-05 00:00:19

标签: node.js npm version 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时,有没有办法在其他开发人员安装软件包时阻止在版本之前包含插入符的默认值?

3 个答案:

答案 0 :(得分:92)

要默认指定确切版本,您可以使用save-exact更改您的npm配置:

npm config set save-exact true

您还可以使用带有save-prefix

的代字号指定前置版本

而且,您不能强迫用户更新为辅修或补丁版本,NPM使用semver,这是推荐发布包的方式。

答案 1 :(得分:4)

您可以使用--save-exact选项更改默认行为。

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

// yarn
yarn add --exact react

如果有人在将来寻找这个,我创建了一篇关于此的博客文章。

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

答案 2 :(得分:0)

执行命令

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

添加答案以使this advice更容易看到。