安装以前版本的软件包

ste*_*t99 838 node.js npm

我使用nvm下载节点v0.4.10并安装了npm以使用该版本的节点.

我正在尝试安装快递使用

npm install express -g
Run Code Online (Sandbox Code Playgroud)

我收到一个表达需要节点版本> = 0.5.0的错误.

好吧,这很奇怪,因为我遵循节点+ express + mongodb教程的指示,这里使用了节点v0.4.10,所以我假设express是/可用于节点v0.4.10.如果我的假设是正确的,我如何告诉npm获取可以使用我的设置的版本?

Bre*_*and 1473

如果必须安装旧版本的软件包,只需指定它即可

npm install <package>@<version>
Run Code Online (Sandbox Code Playgroud)

例如: npm install express@3.0.0

您还可以将该--save标志添加到该命令以将其添加到package.json依赖项中,或者--save --save-exact如果您希望在package.json依赖项中指定的确切版本,则添加标志.

install命令记录在这里:https://docs.npmjs.com/cli/install

如果您不确定可用的软件包版本,可以使用:

npm view <package> versions
Run Code Online (Sandbox Code Playgroud)

并且npm view可用于查看有关包的其他内容.https://docs.npmjs.com/cli/view

  • `npm view <package> versions -json`查看每个版本,避免在包含许多版本的列表末尾的省略号. (6认同)
  • @PatrickHund否,`npm install express @ 3.0.0`将为您提供3.0.0版本。`npm install express @ ^ 3.0.0`将为您提供最新的3.xx`--save-exact'会影响将其写入packages.json的方式,我已经在我的答案中谈到了。另请注意,`--save-exact`必须与`--save`或`--save-dev`组合使用-仅凭其使用是不够的。 (5认同)
  • 我相信这将安装最接近的匹配的主要版本,所以它可能不是你所期望的http://stackoverflow.com/a/22345808/1074400 (3认同)
  • 如果您使用`npm install express @ 3.0.0`,您将无法获得3.0.0的确切版本,您将获得最新的3.xx版本.要获得特定版本,您必须使用`npm install express@3.0.0 --save-exact`.请参阅此博客文章:https://60devs.com/npm-install-specific-version.html (3认同)
  • @AakilFernandes如果指定确切的版本,将安装确切的版本.如果指定语义版本范围,则可能会得到非完全匹配.在这方面,安装命令没有什么独特之处. (2认同)
  • 我可以确认您不会获得 ^1.2.3 的确切版本,然后我们的构建管道尝试引入 1.2.10(最新子版本)并且构建失败。“npm i 1.2.3”放置“^”,当项目构建时(尤其是在另一个位置),这将不能保证完全匹配。 (2认同)

ina*_*aps 91

这很容易.只需写下这个,例如:

npm install -g npm@4.6.1
Run Code Online (Sandbox Code Playgroud)

要么:

npm install -g npm@latest    // For the last stable version
npm install -g npm@next      // For the most recent release
Run Code Online (Sandbox Code Playgroud)

  • 感谢您提供“最新”和“下一个”版本标签! (2认同)
  • @inaps,您*可能*添加一条注释,即“-g”标志专门用于您想要全局安装的软件包,因为许多用户将访问此页面并仅复制/粘贴,而没有意识到它们将如何影响其软件包生态系统。我们都曾是“那个人” (2认同)

Sau*_*tel 70

首先删除旧版本,然后按字面意思运行以下内容:

npm install express@3.X
Run Code Online (Sandbox Code Playgroud)

  • 这是一个文字`X`还是一些数字版本号的替身? (11认同)
  • 这是一个问题,也不是问题.我试过`npm install express @ 3.X`,它似乎工作了.这是'npm`解析版本号的方式的特征或意外吗? (7认同)
  • @KeithThompson是的,它是!呵呵,开个玩笑......这就是`npm`解析它的方式,请参阅:https://docs.npmjs.com/misc/semver#x-ranges-12x-1x-12- (3认同)
  • @gonz:所以这是一个文字`X`. (3认同)
  • 我只是想说明为什么这对你有用。我不知道Saurabh的初衷,也不知道你想做什么。3.X 表示 &gt;= 3.0 且 &lt; 4.0。 (2认同)

Ole*_*nyi 41

在我看来,这是最简单,最快捷的方式:

$ npm -v

4.2.0

$ npm install -g npm@latest-3

...

$ npm -v

3.10.10


Meh*_*lah 11

你可以使用以下命令更新你的 npm 包:

npm install <package_name>@<version_number>

例子: npm install yargs@12.0.2


小智 7

npm install -g npm@version

你想降级的地方

npm install -g npm@3.10.10