将特定 Node 版本与特定 npm 版本结合使用

ho.*_*o.s 5 node.js npm node-modules nvm npm-install

对于客户的网络项目,我与另外两名开发人员合作。前端是用相当多的设置(gulp、foundation、bower……)构建的,并且是几年前开始的。他们都使用(从未更新)

Node v6.12.2 和 npm v5.6.0的组合。

由于我的计算机上有 Node v10.x,并且克隆项目后第一次尝试运行npm install失败,因此我想使用完全相同的设置:

我设置 nvm 使用 v6.12.2

$ \projectfolder nvm use v6.12.2 
Run Code Online (Sandbox Code Playgroud)

终端随后声明:

Now using node v6.12.2 (npm v3.10.10)
Run Code Online (Sandbox Code Playgroud)

如何告诉我的设置使用 npm@5.6.0 和节点 v6.12.2?我尝试了npm install npm@5.6.0然后更改使用的 npm 版本,但也将使用的节点版本更改回来。

我知道 nvm 安装相应的 npm 版本以及节点版本。但是有没有一种方法可以准确地使用其他开发人员在我的项目中使用的版本组合?

axm*_*m__ 6

使用 切换node版本nvm use(并确认您使用 切换node --version)后,您应该使用以下命令进行全局更新/降级npm

npm install -g npm@5.6.0 // -g arg is important
Run Code Online (Sandbox Code Playgroud)

切换回其他节点版本,它应该使用自己的版本。另请参阅这篇有关安装 npm 版本的npm 文章

如果你想知道为什么全局安装:在命令行中运行:

ls -l $(which npm)
Run Code Online (Sandbox Code Playgroud)

它返回

/home/USER_NAME/.nvm/versions/node/vNODE_VERSION/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js
Run Code Online (Sandbox Code Playgroud)

它是指向该特定节点版本的全局文件夹的符号链接node_modules