ChatGPT解决这个技术问题 Extra ChatGPT

如何安装以前精确版本的 NPM 包?

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

我正在尝试使用安装快递

npm install express -g

我得到一个错误,表示需要节点版本> = 0.5.0。

好吧,这很奇怪,因为我遵循使用节点 v0.4.10 的 node+express+mongodb 教程 here 的说明,所以我假设 express 对节点 v0.4.10 可用。如果我的假设是正确的,我如何告诉 npm 获取适用于我的设置的版本?

你为什么不更新你的 Node 版本呢?很确定应该有比你会发现的破坏行为更多的好的补充。
有时这不是一个选择。如果他使用nvm降级,可能是有原因的,比如某个其他组控制了他必须使用的可执行节点版本。

B
Bret Copeland

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

npm install <package>@<version>

例如:npm install express@3.0.0

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

此处记录了 install 命令:https://docs.npmjs.com/cli/install

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

npm view <package> versions

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


我相信这会安装最接近的匹配主要版本,所以它可能不是您所期望的stackoverflow.com/a/22345808/1074400
@AakilFernandes 如果您指定一个确切的版本,则会安装一个确切的版本。如果您指定语义版本范围,那么您可能会得到不完全匹配的结果。 install 命令在这方面没有什么独特之处。
npm view <package> versions -json 查看每个版本,避免在包含多个版本的列表末尾使用省略号。
如果您使用 npm install express@3.0.0,您将无法获得确切的 3.0.0 版本,您将获得最新的 3.xx 版本。要获取特定版本,您必须使用 npm install express@3.0.0 --save-exact。请参阅此博文:60devs.com/npm-install-specific-version.html
@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 结合使用 - 单独使用它是不够的。
i
inaps

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

npm install -g npm@4.6.1

或者:

npm install -g npm@latest    // For the last stable version
npm install -g npm@next      // For the most recent release

感谢您提供 latestnext 版本标签!
@inaps,您可能添加一个注释,-g 标志专门用于您希望全局安装的软件包,因为许多用户将访问此页面并且只是复制/粘贴而没有意识到他们将如何影响他们的包装生态系统。我们都曾是“那个人”
这将在本地安装确切的版本,但会将“^4.6.1”放在 package.json 中,这意味着其他开发人员或构建工具可能会获得另一个可能不是您想要的颠覆并导致构建失败。
S
Saurabh Chandra Patel

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

npm install express@3.X

或者

npm install express@4.X

对于稳定的或最近的

npm install -g npm@latest    // For the last stable version
npm install -g npm@next      // For the most recent release

那是文字 X 还是某些数字版本号的替代品?
那是一个非此即彼的问题,而不是一个是/否的问题。我试过 npm install express@3.X,它似乎工作。这是 npm 解析版本号的方式的功能还是意外?
@KeithThompson 是的,是的!呵呵,开个玩笑……这是 npm 解析它的方式,请参阅:docs.npmjs.com/misc/semver#x-ranges-12x-1x-12-
@gonz:所以这是一个字面X
我只是想说明为什么这对你有用。我不知道 Saurabh 的初衷,也不知道你想要做什么。 3.X 表示 >= 3.0 且 < 4.0。
O
Oleg Bezkorovaynyi

在我看来,这是最简单和最快的方法:

$ npm -v

4.2.0

$ npm install -g npm@latest-3

...

$ npm -v

3.10.10


G
Geo

npm install -g npm@version

您要降级的地方

npm install -g npm@3.10.10


但如果我在本地需要它?我需要放--save吗?
是的,你也有..它将在本地下载包。
@AlexNikonov 省略 -g(对于全局安装,然后它位于您当前的项目目录/node_modules),是的,--save--save-devpackage.json 中获取条目
M
MBehtemam

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

npm install <package_name>@<version_number>

示例:npm install yargs@12.0.2


G
Grant Miller

您可以使用以下命令安装以前版本的 npm 包:

npm install packagename@version

A
Alejandro Araujo

我有一种解决此类问题的通用方法,这也可能会有所帮助,尤其是在克隆存储库以在本地运行它们时,但需要对版本进行更多分析。

对于包 npm-check-updates,我验证了未在其最新可用版本中声明的包的版本(根据 package.json 文件),如图(https://www.npmjs.com/package/npm-check-updates)所示:

https://i.stack.imgur.com/rHXdc.png

有了这些信息,我们可以验证不同包的更新状态,并决定哪些包升级/降级,哪些不升级。

假设我们决定更新列出的所有包,我们可以使用 ncu -u 命令,它只修改您的 package.json 文件。运行 npm install 以更新已安装的软件包和 package-lock.json。

然后,根据存储库的要求,我们可以细化所需的内容,使用 npm view <package> versionsnpm install <package>@<version> 安装特定版本


a
abhishek singh

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

npm install@ 例如:npm install express@3.0.0

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

此处记录了安装命令:https://docs.npmjs.com/cli/install

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

npm 视图版本 并且 npm 视图也可用于查看包的其他内容。 https://docs.npmjs.com/cli/view


您的答案可以通过额外的支持信息得到改进。请edit添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。您可以找到有关如何写出好答案的更多信息in the help center
O
Osama Ahmed Tahir

如果您使用的是 mac,则始终可以使用 nvm,如果是 windows,则可以使用 nodist

对于窗口:https://changelog.com/posts/nodist-node-version-manager-for-windows

对于 Mac:https://github.com/nvm-sh/nvm


r
raqibnur

我找到的最简单的方法:在 package.json 中添加带有版本的软件包名称,然后运行 npm install

"next-seo": "^5.4.0",
"next-themes": "^0.1.1",
"nextjs-progressbar": "^0.0.14",

A
Arbër Hyseni

如果要安装确切的版本,请使用 npm config set save-exact=true


P
Peter Moses

对于纱线用户:

yarn add package_name@version_number

D
Deepti Gehlot

在 Ubuntu 上,您可以尝试此命令。

sudo npm cache clean -f
sudo npm install -g n
sudo n stable 

具体版本:sudo n 8.11.3 而不是 sudo n stable