如何从脚本命令访问 process.env 变量
Posted
技术标签:
【中文标题】如何从脚本命令访问 process.env 变量【英文标题】:How to access process.env variable from a script command 【发布时间】:2019-04-08 17:28:39 【问题描述】:我有一个角度项目。我想根据 process.env.NODE_ENV 文件是测试还是生产来构建不同的项目。
Angular 有一个ng build
命令,您可以使用配置标记该命令,以定义项目应该构建为“测试”还是“生产”。我希望它基于 process.env 变量,而不是对这些值进行硬编码。
如何在我的 package.json 脚本命令中访问这个 process.env.NODE_ENV 变量。
npm 运行构建
"build": "ng build --configuration=process.env.NODE_ENV",
目前我收到以下错误
在项目“演示”中找不到配置“NODE_ENV”。错误: 在项目“演示”中找不到配置“NODE_ENV”。
【问题讨论】:
在linux上你可以使用$NODE_ENV
【参考方案1】:
NODE_ENV=prod npm run build
这将在 process.env 中设置环境变量,以便您可以访问 node.js 脚本中的任何位置。
这样你可以在运行时将任何值传递给NODE_ENV
。
【讨论】:
【参考方案2】:ng build --configuration=$NODE_ENV
或
ng build --configuration=%NODE_ENV%
取决于您的平台。
process.env
只能通过在 node.js 上运行的 javascript 文件访问,这里你需要使用 shell 语法
【讨论】:
取决于平台,我使用的是 linux。所以我需要使用第一个?我这样做的原因是因为 k8 设置了我的容器的环境变量?应该可以访问这些变量,因此我可以构建测试或生产 @Kay 是的,第一个用于 linux/mac,第二个用于 windows以上是关于如何从脚本命令访问 process.env 变量的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 process.env 将环境变量中的 API 密钥传递给 Ember CLI?