Angular CLI如何在运行ng serve命令时更改默认环境?

9
当我运行 ng serve 命令时,它使用默认的开发环境。是否有一种方法可以更新 Angular CLI,以使用不同的环境文件?
更新:
抱歉,在我的问题中应该更清楚。我知道我们可以使用 --env 开关来指定要使用的环境文件,但我想知道是否有一种方法可以在未指定环境变量时更改默认的环境文件选择。目前我们有一个 environment.local.ts 文件,我正在尝试更新 angular cli 配置,以在没有指定环境时使用 environment.local.ts。

3
这是一个功能请求,目前在此跟踪:https://github.com/angular/angular-cli/issues/1923。 - NotSimon
5个回答

5
我遇到了和你一样的问题,找不到方法来覆盖默认环境变量,当没有传递env参数时使用的变量。但我找到了一个对我有效的解决方法:
只需更改在angular cli配置文件(angular-cli.json)中代表“dev”环境的文件路径即可:
// ...
"environments": {
  "dev": "environments/environment.local.ts",
  "prod": "environments/environment.prod.ts"
},
// ...

dev 是 Angular CLI 的默认环境变量,如果没有传递参数,则使用 local 文件。


3

如果您使用的是Angular 6及以上版本,请按照以下步骤操作:

首先,在angular.json文件中定义您的环境,然后创建这些文件,最后通过“ng serve --configuration dev”运行。

此文档详细介绍了上述内容:

https://theinfogrid.com/tech/developers/angular/environment-variables-angular/

此外,您还需要在JSON的“serve”部分进行相同的定义,例如:

"serve": {
 [...]
 "configurations": {
   "production": {
     "browserTarget": "myApp:build:production"
   },
   "debug": {
     "browserTarget": "myApp:build:debug"
   }
 }

2
但不喜欢使用--configuration dev标志。 - Nambi N Rajan

0

"options": {
            "browserTarget": "rcyc-admin:build:uat"
          },

For angular version 7 , you just need to set default serve->options->browserTarget to env file name like in my case its "browserTarget": "cat-admin:build:uat". Or you can add new inside serve->configurations with your environment files like this

"production": {
  "browserTarget": "rcyc-admin:build:production"
},
"uat": {              
   "browserTarget": "rcyc-admin:build:uat"
},

并通过调用实现

 ng serve -c uat

在 angular-cli.json 文件中

不建议使用这个简单的服务器来本地测试或调试 Angular 应用程序


0

尝试通过CLI使用--environment选项:

ng serve --environment prod将使用environment.prod.ts文件。

您还可以在.angular-cli.json文件中配置您的环境。

希望这能帮到您!


0

这可能是与 @angular/cli 版本有关的问题,请使用以下命令删除/卸载您当前的 @angular/cli 版本。

"npm remove @angular/cli" --save-dev

然后安装最新版本,例如:

"npm install @angular/cli@1.3.0" --save-dev

我希望默认环境问题能够得到解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接