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

Windows系统下npm脚本中变量无法替换的问题求助

解决Windows下npm脚本变量无法替换的问题

这是因为Windows默认的命令提示符(cmd)和类Unix系统的Shell语法不一样,你用的$npm_package_name是bash等Shell的变量写法,在cmd里根本不识别,所以直接原样输出了。针对你的环境,有这几种解决办法:

方法一:改用cmd的变量语法

把脚本里的$换成%,修改后的package.json如下:

{
  "name": "my-project",
  "scripts": {
    "start": "echo %npm_package_name%"
  }
}

执行npm start后,就能正确输出my-project了。

方法二:切换到PowerShell执行脚本(可选)

如果你习惯用PowerShell,变量写法要改成$env:npm_package_name,同时需要配置npm默认用PowerShell:

  1. 先修改package.json:
{
  "name": "my-project",
  "scripts": {
    "start": "echo $env:npm_package_name"
  }
}
  1. 执行命令配置npm的shell:
npm config set script-shell "powershell.exe"

之后执行npm start也能得到正确结果。

补充说明

npm脚本里的变量替换逻辑是依赖执行脚本的Shell环境的,Windows下默认用cmd,所以必须遵循cmd的变量规则;而类Unix系统用bash/zsh等,才用$开头的写法。你的npm和Node版本都是支持变量替换的,只是语法没对应上系统环境而已。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:43:17