如何为 dev vs prod @ionic/app-scripts 设置动态环境变量?

Posted

技术标签:

【中文标题】如何为 dev vs prod @ionic/app-scripts 设置动态环境变量?【英文标题】:How can I set a dynamic env variable for dev vs prod @ionic/app-scripts? 【发布时间】:2018-09-14 16:14:08 【问题描述】:

我在 ionic/webpack 构建过程中完全是个菜鸟,但是对于这个任务,我特意指的是这个:https://github.com/ionic-team/ionic-app-scripts#environments。我不太明白“如果变量存在于流程环境中,它将被替换为该值”是什么意思。

我的 package.json 中的脚本如下:

"scripts": 
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build --dev",
    "build:after": "",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"

据我了解,我应该能够在代码中的任何位置设置一个环境变量,例如 process.env.BASE_URL,根据构建的不同,它可能是不同的值。

我的问题是如何构建我的脚本以在我的流程环境中设置该变量?只是将“build”脚本设置为“BASE_URL=myurl ionic-app-scripts build --dev”吗?如果真的那么容易,那么我将如何访问 --prod 标志的脚本来设置该变量的变量? 先感谢您。我真的很喜欢这个社区。​​p>

【问题讨论】:

【参考方案1】:

你几乎是正确的。通常,我做事的方式是在我的脚本配置中定义一个项目,例如"ionic:build:prod" : "BASE_URL=myurl ionic-app-scripts build --prod。这样你就可以用一个简单的命令来运行整个事情(npm run ionic:build:prod)

【讨论】:

以上是关于如何为 dev vs prod @ionic/app-scripts 设置动态环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

Azure Pipelines 如何为“仅限手动”触发的版本筛选每个阶段的工件

如何为不同的目标设置不同的 .entitlements 文件

如何为开发和生产环境建立不同的配置文件

如何为重复添加值?

如何为 VS 2017 安装 SignTool.exe?

如何为 VS Code 的集成终端设置节点版本?