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
您可以在不安装其他版本的 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
当您安装 npm 时,您只会获得最新的软件包,因此您需要单独安装特定版本,例如:
npm install -g npm@5.6.0
完成后,运行版本检查,您应该会看到刚刚安装的版本:
npm -v
5.6.0
对于特定版本,请使用
npm install -g npm@xyz
对于最新版本,请使用
npm install -g npm@latest