如何使用nvm使用不同版本的节点运行npm命令?

时间:2018-04-30 17:30:47

标签: node.js nvm

试过这些:

✗ nvm run 9 npm start 
Running node v9.10.1 (npm v5.8.0)
module.js:545
    throw err;
    ^

Error: Cannot find module '/Users/foo/work/grid-styled/npm'
    at Function.Module._resolveFilename (module.js:543:15)



✗ nvm run 9 npm -- x0 dev docs/App.js
Running node v9.10.1 (npm v5.8.0)
module.js:545
    throw err;
    ^

Error: Cannot find module '/Users/foo/work/grid-styled/npm'

我可以通过直接调用bin来运行它:

nvm run 9 node_modules/.bin/x0 dev docs/App.js

但是最好只打电话给npm。似乎可能but the nvm docs don't address this use case.

1 个答案:

答案 0 :(得分:1)

如果使用nvm run,则表示您正在特定版本上执行节点,因此: nvm run 9 npm start相当于node npm start(节点版本9)。这就是导致错误的原因。

您应该使用nvm exec代替,即用于在特定版本上执行命令,例如:

$ nvm exec 10 npm -v
Running node v10.0.0 (npm v6.0.0)
6.0.0
$ nvm exec 6 npm -v
Running node v6.10.3 (npm v3.10.10)
3.10.10