Angular CLI 6.0.1如何控制dev环境和webpack

Unk*_*per 4 webpack angular angular-cli-v6

这是angular.json的一部分:

"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"
                }
              ]
            }
Run Code Online (Sandbox Code Playgroud)

我想要做的是控制开发环境.例如,更改sourceMapfalse,我不想通过添加参数来做到这一点ng build.内部有没有相当于开发的内容productionangular.json

还有一些非常重要的事情:在Angular-CLI 6中没有ng eject!那怎么可能看到并修改webpack.config.js呢?

Dav*_*vid 6

所有环境的默认设置都在architect > build > options属性中配置

 "projects": {
    "MyProject": {
      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "dist",
            "index": "src/index.html",
            "main": "src/main.ts",
            "tsConfig": "src/tsconfig.app.json",
            "polyfills": "src/polyfills.ts",

            //Add settings here
            "sourceMap": false,
             "fileReplacements": [
                {
                    "replace": "src/environments/environment.ts",
                    "with": "src/environments/environment.anotherdevenv.ts"
                }
            ]
Run Code Online (Sandbox Code Playgroud)

这些设置按原样用于dev env,因此您可以修改它(但如果它们不覆盖指定的设置,这将影响其他环境)

您还可以创建自己的"开发"配置(例如,通过复制生产conf,并根据需要进行更改),并在该conf中指定特定于开发环境的设置.然后运行以下命令

ng serve -c development
Run Code Online (Sandbox Code Playgroud)

eject命令暂时被禁用,但应该根据angular cli团队的核心成员的评论尽快添加(https://github.com/angular/angular-cli/issues/10945)