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

Windows系统下如何在npm脚本中使用环境变量

解决Windows下npm脚本接收终端传入环境变量的问题

直接解决方案(针对Windows CMD)

  1. 修改package.json中的脚本,将$变量名替换为Windows CMD识别的%变量名%语法:
"scripts": {
    "check": "echo %SECRET%"
}
  1. 执行终端命令:
set SECRET=hello&& npm run check

此时就能得到预期输出hello。

适配你的原始场景

把build:steps:env脚本里的$TOKEN替换为%TOKEN%:

"staging": "run-s build:steps:* && run-s langcheck",
"build:steps:env": "npx dotenv-vault pull .env --dotenvMe=%TOKEN%"

然后执行命令:

set TOKEN=blabla&& npm run staging

原因说明

Windows的CMD命令提示符使用%变量名%的语法引用环境变量,而你之前用的$变量名是类Unix系统(Linux/macOS)中bash/zsh的语法。npm在Windows下默认用CMD执行脚本,因此必须遵循CMD的变量引用规则。

跨平台兼容方案(可选)

如果需要同时兼容Windows和类Unix系统,可以使用cross-env包:

  1. 安装依赖:
npm install cross-env --save-dev
  1. 修改脚本为跨平台写法:
"scripts": {
    "check": "cross-env echo $SECRET"
}
  1. 执行命令(Windows和类Unix系统通用):
# Windows CMD
set SECRET=hello&& npm run check

# Linux/macOS bash
SECRET=hello npm run check

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 21:01:41