您可以在不安装其他版本的 node.js 的情况下更新 npm,并且 npm 不特定于 node.js 的版本。
当然,随着 node.js 的进步和功能的增加,npm 也在进步,因此 npm 有一些限制,具体取决于 node.js,但你应该尽可能多地更新 npm,因为有重要的安全补丁和错误修复。
这是适用于所有软件的最佳做法。稳定性不值得忽视安全风险。
命令是npm install npm@latest -g 全局安装。这将安装与您已安装的 node.js 一起运行的最新版本。
此外,您可以在 npm install npm@6.14 这样的项目中将特定版本的 npm 安装到您的 package.json 中,并且您可以在本地使用它。更有趣的是,你可以在项目中安装本地版本的 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