【问题标题】:How to use a specific version of NPM?如何使用特定版本的 NPM?
【发布时间】:2021-09-05 22:11:10
【问题描述】:

如何切换我使用的 npm 版本?

目前:

$ npm -v
1.1.65

但我需要:1.0.x

我试过了,但出错了:

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

有人知道如何使用不同版本的 NPM 吗?谢谢

【问题讨论】:

  • 安装旧版本。 github.com/isaacs/npm
  • @Brad 你不能像在 rpm 中那样切换版本吗?这就是我需要的
  • 您可以切换版本...通过安装另一个版本。为什么这个解决方案不被接受?你想做什么?
  • 你试过npm install npm@1.0.x吗?

标签: node.js npm


【解决方案1】:

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

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

$ npm install -g npm@x.x

【讨论】:

  • 8.1.0 也有这个问题。 6个作品。谢谢!
【解决方案2】:

您可以在不安装其他版本的 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

【讨论】:

    【解决方案3】:

    当你安装 npm 时你只会得到最新的包,所以你需要单独安装特定的版本,例如:

    npm install -g npm@5.6.0
    

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

    npm -v
    5.6.0
    

    【讨论】:

      【解决方案4】:

      对于特定版本,请使用

      npm install -g npm@x.y.z

      对于最新版本,请使用

      npm install -g npm@latest

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-03-22
        • 2019-03-28
        • 2020-05-25
        • 1970-01-01
        • 1970-01-01
        • 2015-01-09
        • 2015-07-30
        相关资源
        最近更新 更多