如何使用特定版本的NPM?

vi4fp9gy  于 2022-11-14  发布在  其他
关注(0)|答案(4)|浏览(229)

如何切换使用的npm版本?
目前:

$ npm -v
1.1.65

但我需要:1.0.x
我尝试了,但出现错误:

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

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

0yg35tkg

0yg35tkg1#

你的NPM版本和你的NodeJS版本是绑定的。据我所知,每个节点版本只能有一个NPM版本。使用nodenv或者我最喜欢的asdf,你可以定义每个文件夹的节点版本。
对于每个节点版本(例如,每个文件夹),您可以全局安装要使用的NPM版本。

$ npm install -g npm@x.x

编辑:您现在还可以在package.json“engines”键中指定NPM版本,尽管它需要a little more work to enforce that declaration

n7taea2i

n7taea2i2#

您可以更新npm,而无需安装node.js的其他版本,并且npm不会特别绑定到node.js的版本。
当然,随着node.js的进步和功能的增加,npm也会有所改进,所以npm会受到node.js的限制,但是你应该尽可能多地更新npm,因为有重要的安全补丁和错误修复。
这是所有软件的最佳实践。稳定性不值得忽视安全风险。
命令是npm install npm@latest -g以全局安装它。这将安装最新版本,该版本将与您已安装的node.js一起运行。
此外,您可以在项目中的package.json中安装一个特定版本的npm,比如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中创建一个脚本来测试它,如下所示:"what:version": "npm -v && node -v"
然后,如果运行npm,运行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

34gzjxbg

34gzjxbg3#

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

npm install -g npm@5.6.0

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

npm -v
5.6.0
fkaflof6

fkaflof64#

对于特定版本,请使用

npm安装-g npm@x.y.z

对于最新版本,请使用

npm安装-g npm@最新

相关问题