使`npm install –save`为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时,有没有什么办法可以防止在其他开发者安装你的包的时候在版本之前默认包含脱字符?

要默认指定一个确切的版本,你可以用save-exact来改变你的npmconfiguration:

npm config set save-exact true

您还可以使用带有存储前缀的代字号指定前置版本

而且,不,您不能强制用户更新到次要版本或补丁版本,NPM使用semver ,这是发布软件包的推荐方式。