在Angular 6中不再可以指定env

在使用Angular开发时,当需要准备除了开发和生产环境之外的其他环境时,下面的命令非常方便。

ng build --prod -e=staging
ng build --prod --env=staging

这个在Angular6中无法使用了。

使用之后, (Tsu ka u to)

Unknown option: '--env'

被训斥了。

在Angular 6中,我们使用configuration来指定,而不是使用env。

然而,在此之前,需要进行一些准备工作。

需要更改Angular6中的以下部分。

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

在这里,我们向配置中添加了staging。
为了方便在Angular 6中修改src/environments目录下的配置之外的内容,我们将环境(environment)改为了配置(configuration)。

要应用此设置,请按照以下方式进行构建。

ng build --configuration=staging

(例如ng serve),同样的方式。