如何在Angular 6中通过“ng serve”设置环境

我正在尝试将我的Angular 5.2应用更新到Angular 6。我成功地遵循了Angular更新指南中的说明(包括将angular-cli更新到v6),现在我试图通过

ng serve --env=local

但这给了我错误:

未知选项:'——env'

我使用了多个环境(dev/local/prod),这就是它在Angular 5.2中工作的方式。现在如何在Angular 6中设置环境?

183559 次浏览

你需要使用新的configuration选项(这也适用于ng buildng serve)

ng serve --configuration=local

ng serve -c local

如果你查看你的angular.json文件,你会发现你可以更好地控制每个配置的设置(aot,优化器,环境文件,…)

"configurations": {
"production": {
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
}
}

你可以获得更多信息在这里来管理特定环境的配置。

正如下面的另一个响应所指出的,如果你需要添加一个新的“环境”,你需要向构建任务添加一个新的配置,根据你的需要,还需要向服务测验任务添加一个新的配置。

添加新环境

< p > 编辑: 为了说明这一点,文件替换必须在build部分中指定。因此,如果你想对特定的environment文件(比如dev2)使用ng serve,你首先需要修改build部分来添加一个新的dev2配置

"build": {
"configurations": {
"dev2": {


"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.dev2.ts"
}
/* You can add all other options here, such as aot, optimization, ... */
],
"serviceWorker": true
},

然后修改你的serve部分来添加一个新的配置,指向你刚刚声明的dev2 build配置

"serve":
"configurations": {
"dev2": {
"browserTarget": "projectName:build:dev2"
}

然后你可以使用ng serve -c dev2,它将使用dev2配置文件

答案似乎不错 然而,它导致了一个错误,因为它的结果是
Configuration 'xyz' could not be found in project ... < br > 编译错误。
它不仅需要更新构建配置,还需要更新服务 的人。< / p >

为了不让大家困惑

  1. --envangular 6中不支持
  2. --env变成了--configuration || -c(现在更强大)
  3. 来管理各种环境,除了添加新的环境文件外,现在还需要在angular.json文件中做一些更改:
    • 构建 { ... "build": "configurations": ...属性中添加新的配置
    • 新的构建配置可能只包含fileReplacements部分,(但有更多选项可用)
    • 服务 { ... "serve": "configurations": ...属性中添加新的配置
    • new 服务配置应该包含browserTarget="your-project-name:build:staging"
    • 李< / ul > < / >

在Angular 6中使用这个命令来构建

ng build --prod --configuration=dev

对于Angular 2 - 5,请参考文章angular中的多重环境

对于Angular 6,使用ng serve --configuration=dev

注意:angular 6也可以参考同一篇文章。但是无论你在哪里找到--env,都应该使用--configuration。这对于angular 6很有效。

你可以试试:ng serve --configuration=dev/prod

要构建使用:ng build --prod --configuration=dev

希望你正在使用一种不同的环境。

你可以在开发环境中使用ng serve -c dev命令 ng serve -c prod用于生产环境

而建筑也同样适用。你可以使用ng build -c dev进行开发构建

Angular不再支持——env,你必须使用

ng serve -c dev

对于发展环境和

ng serve -c prod

用于生产。

注意:-c--configuration

这适用于Angular 12

步骤1:

"serve":
"configurations": {
"staging": {
"browserTarget": "projectName:build:staging"
}
< p >步骤2: NPX ng运行myapp:serve——configuration=staging