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

ng serve --env=local

但这给了我错误:

未知选项:'——env'

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


你需要使用新的配置选项(这也适用于ng build和ng serve)

ng serve --configuration=local

or

ng serve -c local

如果你看你的棱角分明。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"
      }
    ]
  }
}

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

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

添加新环境

编辑: 为了说明这一点,必须在构建部分指定文件替换。因此,如果你想在一个特定的环境文件(比如dev2)中使用ng serve,你首先需要修改构建部分以添加一个新的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
        },

然后修改您的服务部分以添加一个新的配置,指向您刚刚声明的dev2构建配置

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

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


这个答案似乎不错。 然而,它导致了我的一个错误,因为它导致了 在项目中找不到配置“xyz” 构建错误。 它不仅需要更新构建配置,而且还需要服务 的人。

为了不让大家困惑

--env is not supported in angular 6 --env got changed into --configuration || -c (and is now more powerful) to manage various envs, in addition to adding new environment file, it is now required to do some changes in angular.json file: add new configuration in the build { ... "build": "configurations": ... property new build configuration may contain only fileReplacements part, (but more options are available) add new configuration in the serve { ... "serve": "configurations": ... property new serve configuration shall contain of browserTarget="your-project-name:build:staging"


在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"
    }

第 2 步: 运行 MyApp:serve 的 NPX --配置=暂存