在pnpm脚本中设置Vite环境变量失败的问题求助
在pnpm脚本中设置临时环境变量的解决方案
你遇到的问题是因为BUILD_PLATFORM=web是类Unix系统(Linux/macOS)的Shell语法,Windows的CMD/PowerShell不识别这种写法,所以报错。以下是几种可行的解决方式:
分平台直接适配
- Windows CMD环境:用
set命令定义环境变量,脚本修改为:"build": "set BUILD_PLATFORM=web && vite build" - Windows PowerShell环境:用PowerShell的环境变量语法:
"build": "$env:BUILD_PLATFORM='web'; vite build" - Linux/macOS环境:你原来的写法本身有效,直接用即可:
"build": "BUILD_PLATFORM=web vite build"
跨平台通用方案(推荐)
如果需要一套脚本兼容所有系统,可以用cross-env工具:
- 安装开发依赖:
pnpm add cross-env -D - 修改package.json中的build脚本:
"build": "cross-env BUILD_PLATFORM=web vite build"
这样不管在Windows还是类Unix系统下运行,都能正确识别环境变量。
动态传参调用(无需修改脚本)
如果需要每次调用时灵活指定环境变量值,不用把变量写死在脚本里:
- Linux/macOS终端直接执行:
BUILD_PLATFORM=web pnpm build - Windows CMD执行:
set BUILD_PLATFORM=web && pnpm build - Windows PowerShell执行:
$env:BUILD_PLATFORM='web'; pnpm build
对应的package.json只需要保留基础构建命令:
"build": "vite build"
内容的提问来源于stack exchange,提问作者Mero
相关产品推荐
相关产品推荐

