使用 NPM 安装最高 semver 主要版本 X

Ale*_*lls 3 node.js npm package.json

使用 package.json 和 NPM 如何使用命令行安装最大数量的主要版本 1 或主要版本 2?

在这种情况下,我想将软件包从版本 2.xx 降级到 1.xx 在这种情况下,我希望 x 成为可能的最大数字。

就像是:

npm install foo@latest:1
Run Code Online (Sandbox Code Playgroud)

我不知道。我的最终目标是将正确的数据放入 package.json 中,这样我就不会跳转到版本 2.0.0,并且始终保持在最高的 1.xx 版本。

有什么我可以手动插入到 package.json 中吗?然后跑npm install foo

不幸的是,NPM 关于 semver 的文章没有多大帮助。

Sam*_*Toh 5

如果您希望始终为特定版本选择最新和最好的版本,但又不想跳转主要版本,那么您可以使用^package.json 中的前缀。

例子:

"dependencies": {
    "nodemailer": "^2.3.2"
  },
Run Code Online (Sandbox Code Playgroud)

注意: nodemailer 的最新主要版本是版本4

这将解析为nodemailer@2.7.2,这是 version 的最后一个版本2

执行npm install会产生以下结果

输出:

npm WARN deprecated nodemailer@2.7.2: All versions below 4.0.1 of Nodemailer are deprecated. See https://nodemailer.com/status/
npm WARN deprecated CSSselect@0.3.11: the module is now available as 'css-select'
npm WARN deprecated CSSwhat@0.4.7: the module is now available as 'css-what'
nodemailer@2.7.2 node_modules/nodemailer
Run Code Online (Sandbox Code Playgroud)

参考: http: //fredkschott.com/post/2014/02/npm-no-longer-defaults-to-tildes/