You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用nvm搭配不同Node.js版本执行npm命令?

解决nvm运行npm命令时找不到模块的问题

看起来你是对nvm run的用法有点误解导致的报错,我来帮你梳理下正确的操作方式:

为什么会报错?

nvm run <version>的作用是运行指定Node版本下的某个脚本文件,而不是执行系统命令。当你输入nvm run 9 npm start时,nvm会尝试在当前目录找名为npm的文件来运行,这就是为什么会出现Cannot find module '/Users/foo/work/grid-styled/npm'的错误——它根本不是在调用npm命令,而是在找一个叫npm的脚本文件。

正确的解决方法

方法1:用nvm exec代替nvm run

nvm exec才是用来在指定Node版本环境下执行命令的工具,你可以这样写:

  • 启动项目:
    nvm exec 9 npm start
    
  • 运行x0命令:
    nvm exec 9 x0 dev docs/App.js
    

这样nvm会先切换到Node 9环境,再执行后面的npm/x0命令,完全符合你的需求。

方法2:先切换Node版本再执行命令

如果你需要在Node 9环境下执行多个命令,可以先切换版本:

nvm use 9

之后直接运行命令即可:

npm start
# 或者
x0 dev docs/App.js

方法3:把命令加到package.json的scripts里(最便捷)

如果经常需要用Node 9运行这些命令,推荐把它们写到项目的package.json的scripts字段中:

{
  "scripts": {
    "start:node9": "nvm exec 9 npm start",
    "dev:docs:node9": "nvm exec 9 x0 dev docs/App.js"
  }
}

之后你只需要简单运行:

npm run start:node9
# 或者
npm run dev:docs:node9

就能一键完成版本切换和命令执行,非常方便。

内容的提问来源于stack exchange,提问作者jcollum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:48:44