运行npm install --save somepackage
时,通常会在package.json中添加类似的内容:
"dependencies": {
"somepackage": "^2.1.0"
}
因为版本前面带有插入符号(^),这意味着如果稍后运行npm install
,它可能会安装版本2.3.0。出于相当明显的原因,这可能是不可取的npm shrinkwrap
很有用,但并没有真正解决问题。
所以,我有几个问题:
答案 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)