首页 文章

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

提问于
浏览
52

当你运行 npm install --save somepackage 时,它通常会在package.json中添加这样的东西:

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

因为版本前面带有插入符号(^),这意味着如果稍后运行 npm install ,它可能会安装版本2.3.0 . 出于相当明显的原因,这可能是不可取的 npm shrinkwrap 很有用,但并没有真正解决问题 .

所以,我有几个问题:

  • 安装软件包时,是否可以指定要将其设置为package.json中的特定版本(版本号前没有插入符号)?

  • 将包发布到npm时,有没有办法在其他开发人员安装包时阻止在版本之前包含插入符的默认值?

3 回答

  • 82

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

    npm config set save-exact true

    您还可以使用带有save-prefix的波浪号指定前置版本

    并且,不能强制用户更新为次要版本或修补程序版本,NPM使用semver,这是发布包的推荐方式 .

  • 3

    您可以使用--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/

  • 0

    跑:

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

    添加答案以使此建议更容易看到 .

相关问题