Npm install 忽略版本号中的波浪号 (~)

Npm install ignores tilde (~) in version number

我想安装 1.8.x version 一个包,然后能够在 >=1.8.0 <1.9.0 范围内自动更新这个依赖。

我尝试运行这个命令:

npm install example-package@~1.8 --save

不幸的是,它将这条记录添加到我的 package.json:

"example-package" : "^1.8.0"

但我想要的是:

"example-package" : "~1.8.0"

如何在不手动编辑 package.json 文件的情况下使用 npm install 完成此操作?

语义版本前缀由save-prefix config. The default value is a caret (^) which you can check by running the following npm config命令定义:

npm config get save-prefix

不幸的是,npm install 命令没有指定选项,因此您需要做的是:

  1. 通过 运行:

    save-prefix 值设置为波浪号 (~)
    npm config set save-prefix="~"
    
  2. 通过 运行 安装您的软件包:

    npm i example-package@1.8.0 --save
    

    注意:波浪号 (~) 不得包含在安装命令中。

  3. 最后,将 save-prefix 值设置回默认值,即 运行:

    插入符号 (^)
    npm config delete save-prefix
    

    注意: 如果您希望所有未来的 npm install 都使用波浪号 (~) 前缀,则不会执行最后一步插入符号 (^).

以上步骤会在package.json中添加如下记录:

"example-package" : "~1.8.0"

注意波浪号 ~ 而不是默认插入符号 ^


您可以利用&&运算符将上述命令组合成一个复合命令。例如:

npm config set save-prefix="~" && npm i example-package@1.8.0 --save && npm config delete save-prefix