【发布时间】: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