11

How can I switch which version of npm I'm using?

Currently:

$ npm -v
1.1.65

But I need: 1.0.x

I tried but got an error:

$npm version 1.0
npm ERR! version No package.json found

Anyone know how to use a different version of NPM? Thanks

4

4 回答 4

14

您的 NPM 版本与您的 NodeJS 版本相关联。据我所知,每个 Node 版本只能有一个 NPM 版本。使用nodeenv或我最喜欢的asdf之类的东西,您可以定义每个文件夹的节点版本。

每个节点版本(例如每个文件夹)你全局安装你想要使用的 NPM 版本。

$ npm install -g npm@x.x
于 2015-11-02T20:50:17.190 回答
11

您可以在不安装其他版本的 node.js 的情况下更新 npm,并且 npm 不特定于 node.js 的版本。

当然,随着 node.js 的进步和功能的增加,npm 也在进步,所以 npm 有一些限制,具体取决于 node.js,但你应该尽可能多地更新 npm,因为有重要的安全补丁和错误修复。

这是所有软件的最佳实践。稳定性不值得忽视安全风险。

命令是npm install npm@latest -g全局安装它。这将安装将与您已安装的 node.js 一起运行的最新版本。

此外,您可以在这样的项目中将特定版本的 npm 安装到您的 package.json 中,npm install npm@6.14并且您可以在本地使用它。更有趣的是,您可以在项目中安装本地版本的 node.js 并使用它!

示例:我正在运行节点 16.8.0 并且我有 npm 7.21.0 但我想使用早期版本的 npm 但仅用于项目:

在项目目录中

npm i --save-dev npm@6.14

这会将早期版本的 npm 放入 node_modules/.bin 中,这样您就可以运行与该项目相关的它。如果您npm -v此时键入,您将获得您的全局版本。

如果你输入node_modules/.bin/npm -v,你会得到 6.14.15

由于您已将此版本的 npm 作为此项目的版本,因此当您在脚本中使用 npm 时,它将使用 6.14.15 而不是全局版本。

node.js 也是如此。

您可以像这样安装旧版本的 node.js:node_modules/.bin/npm install --save-dev node@lts然后将这个版本的 node.js 添加到项目中。

您可以通过输入进行测试node_modules/.bin/node -v,在我的示例中,您将看到本地安装的版本号,在我的示例中为 v14.17.3,尽管我的全局是 v16.8.0

如果您这样做,您的 package.json 脚本中的项目脚本将运行本地安装的版本,而不是全局版本。

您可以通过在 package.json.scripts 中创建一个脚本来测试它,如下所示"what:version": "npm -v && node -v"

然后如果你运行 npm run what:version 你会得到

> what:version
> npm -v && node -v

6.14.15
v14.17.3

这是什么价值?

这是您将 node 和 npm 与您的项目打包的一种方式。这对于有很多人在同一个项目上工作的大型项目特别有价值,因此您可以全面保持一致性,或者如果您有一个具有特定版本的 node + npm 的构建服务器。此外,如果您有公司要求等。

此外,还有 npx 可以让你做更多的事情。使用 npx 你甚至可以在不安装的情况下尝试一些东西。

这是 npm 的文档:https ://docs.npmjs.com/about-npm-versions

如果您发现需要在不同版本的 node.js 和 npm 之间切换,您可能需要使用 nvm https://docs.npmjs.com/downloading-and-installing-node-js-and-npm

于 2021-09-04T15:39:57.190 回答
0

当您安装 npm 时,您只会获得最新的软件包,因此您需要单独安装特定版本,例如:

npm install -g npm@5.6.0

完成后,运行版本检查,您应该会看到刚刚安装的版本:

npm -v
5.6.0
于 2018-08-03T08:44:12.207 回答
0

对于特定版本,请使用

npm install -g npm@xyz

对于最新版本,请使用

npm install -g npm@latest

于 2020-03-16T06:32:39.063 回答