【问题标题】:npm install -SE with minor versions notationnpm install -SE 带有次要版本符号
【发布时间】:2017-01-10 18:39:45
【问题描述】:

不知道这是缺少功能还是我做错了什么,但我有以下“问题”。

假设我想安装 foo@3.2.x 包并将其自动保存在我的 package.json 中

npm install foo@3.2.x -S

这将在我的 package.json 中写入版本 ^3.2.0

npm install foo@3.2.x -SE

这将在我的 package.json 中写入 3.2.0 版本

如果我想从补丁版本符号中获利并且想在我的 package.json 中包含 3.2.x 怎么办? 唯一的选择是手动添加吗?

谢谢!

【问题讨论】:

  • 如果我正确理解了您的问题,您无需使用.x 版本。如果您安装和--save,它会将^ 前缀附加到版本。这允许安装任何版本,只要主要和次要版本号匹配。将安装任何等于或高于您安装的补丁程序版本。例如^3.2.0 将允许 3.2.0 和 3.2.1 等等。 ^3.2.2 将允许 3.2.2、3.3.3 等,但不允许 3.2.1 或 3.2.0。这就是你想要完成的事情吗?
  • 你是对的,我的问题写错了。我的想法是有一个格式为 3.2.x 的 package.json,这样我就可以获取 npm update 上的所有补丁,而不是次要或主要版本。似乎唯一的方法是编辑 package.json 文件...
  • 这就是^符号的作用,它只会在补丁版本出来时更新包。如果出现新的次要或主要版本,它将不会更新软件包。
  • 不,实际上 ^ 符号会更新次要版本和补丁。在@saintedlama 回答后,我发现 ~ 符号只更新补丁。

标签: javascript json node.js npm npm-install


【解决方案1】:

semver 简写~ 可用于仅安装软件包的补丁版本更新,但不能安装次要或主要版本更新(请参阅https://docs.npmjs.com/misc/semver#tilde-ranges-123-12-1)。要使其成为 npm 中的默认值,请使用 npm config 命令

npm config set save-prefix=~

现在,波浪号将用于安装的每个包

npm install foo -S

使用npm i时只安装补丁级别的更新。

【讨论】:

  • 太棒了!我使用了 .npmrc,所以对于所有开发人员来说都是一样的。
猜你喜欢
  • 2021-12-28
  • 2016-05-02
  • 2018-09-13
  • 2020-07-06
  • 1970-01-01
  • 2019-06-03
  • 2018-12-02
  • 1970-01-01
  • 2019-04-15
相关资源
最近更新 更多