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

执行npm脚本时如何指定Node.js路径?

解决方法

首先纠正一个误区:NODE_PATH是用来指定Node.js模块的查找路径,而非Node可执行文件的路径,你之前的尝试方向不对。下面是几种可靠的实现方式:

方法1:直接在npm脚本中指定Node可执行文件路径

修改项目根目录的package.json,将dev脚本改为直接调用指定版本的Node来执行Angular CLI:

{
  "scripts": {
    // Unix/Linux/macOS示例
    "dev": "/usr/local/node-v18.17.0/bin/node ./node_modules/@angular/cli/bin/ng serve",
    // Windows示例
    // "dev": "C:\\Program Files\\nodejs-v18.17.0\\node.exe ./node_modules/@angular/cli/bin/ng serve"
  }
}

原理:Angular CLI的ng本质是Node脚本,通过指定路径的Node可执行文件直接运行它,确保整个ng serve过程使用你需要的Node版本。

方法2:用版本管理工具(如nvm)自动切换版本

如果你用nvm管理Node版本,可按以下操作:

  1. 在项目根目录创建.nvmrc文件,写入目标Node版本号:
v18.17.0
  1. 修改package.json的脚本,让nvm自动调用指定版本:
{
  "scripts": {
    // 自动切换到.nvmrc指定的版本后执行ng serve
    "dev": "nvm use && ng serve",
    // 或者直接指定版本执行,无需.nvmrc
    // "dev": "nvm exec v18.17.0 ng serve"
  }
}

注意:该方法需要终端环境支持nvm命令,Windows用户需使用nvm-windows。

验证是否生效

可以在脚本中先打印Node版本,确认是否为指定版本:

{
  "scripts": {
    "dev": "/usr/local/node-v18.17.0/bin/node -v && /usr/local/node-v18.17.0/bin/node ./node_modules/@angular/cli/bin/ng serve"
  }
}

执行npm run dev后,会先输出Node版本号,确认无误后再启动Angular服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 14:12:32