如何从脚本命令访问 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 变量的主要内容,如果未能解决你的问题,请参考以下文章

如何从公用文件夹中访问环境变量?

如何使用 Glitch 访问 .env 变量?

如何使用 process.env 将环境变量中的 API 密钥传递给 Ember CLI?

将自定义变量从 npm 脚本设置为 javascript

运行 create-react-app 构建脚本时如何设置构建 .env 变量?

process对象