angular - angular cli 6 自定义构建选项(环境变量)
问题描述
好吧,我不喜欢在版本控制中使用环境变量,因为我希望能够在不重新部署应用程序的情况下配置应用程序。
我有一个问题。如何从 ng build 命令添加 angular cli 6 自定义选项?例如我要: ng build --api-url="http:/my-url.com" 换句话说,我该如何设置环境变量?
解决方案
我相信这可能会对你有所帮助。
对于我自己的项目,我有 4 个环境文件,
- environment.ts(对于我的本地主机)
- environment.dev.ts(用于我的开发测试服务器)
- environment.staging.ts(用于我的登台测试服务器)
- environment.prod.ts(用于我项目的生产服务器)
所有 4 个文件都有不同的 API URL(我的项目 API 调用的基本 URL),所以我需要为每个环境自定义构建。
现在我相信你的情况或多或少是一样的,所以我建议你创建不同的环境文件。
然后在您的angular.json
文件中,您需要按如下方式定义这些配置:
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
...
...
...
...
},
"staging": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.staging.ts"
}
],
...
...
...
...
},
"dev": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.dev.ts"
}
],
...
...
...
...
}
}
定义完所有配置后,您需要做的就是运行带有配置选项的 ng build 命令。
- 对于开发
ng build --configuration=dev
- 用于分期
ng build --configuration=staging
- 用于生产
ng build --configuration=production
就是这样。现在您的构建将使用正确的环境文件。
推荐阅读
- opengl - 从 gl_FragColor 切换到“out”值没有渲染
- javascript - 设置 useState 对象值时使用 prop 值
- unix - 在 Unix 中粘贴具有不等行和多列的文件
- c# - JsonConvert.DeserializeObject 未按预期从 JSON 转换响应对象
- python - 自定义 Kite python 库
- java - 使用 java.time.Clock.offset 以任意开始时间递增时间
- xml - 列出 pom.xml 文件中所有依赖项的好方法是什么?
- c++ - 由于“无法从 'std::pair 转换参数 1”,std::map 插入无法编译
' 到 'std::pair &&'" - html - 如何为所有人设置通用规则
适合各种字体大小的页面的元素?
- angular - 无法检测到 http 标头