Angular 5-使用ng build和uglify和minify进行Dev / QA构建(例如ng build --prod)

时间:2019-01-29 16:39:00

标签: angular angular5 angular-cli

我正在使用angular5和angular-cli,并且要求将可在浏览器的检查器工具中查看的代码压缩/最小化。 我的angular-cli.json具有:

"environmentSource": "environments/environment.ts",
"environments": {
    "dev": "environments/environment.ts",
    "prod": "environments/environment.prod.ts"
}

对于生产来说,通过 ng build --prod 可以正常运行 但这只能用于生产环境。 我想为开发人员环境做同样的事情,但我无法实现。 除了--enviornment之外,我已经尝试了使用prod值构建的大多数选项:

Flag                 --dev    --prod
--aot                false    true
--environment        dev      prod
--output-hashing     media    all
--sourcemaps         true     false
--extract-css        false    true
--named-chunks       true     false
--build-optimizer    false    true with AOT and Angular 5

例如

ng build --aot=true --output-hashing=all --sourcemaps=false --extract-css=true --named-chunks=false --build-optimizer true

但这对我不起作用。没有为此环境创建丑化的代码(此处为dev)。

如何在其他环境中使用相同的构建命令?如何在其他环境中使用产品优化?

2 个答案:

答案 0 :(得分:1)

您可以通过在angular.json文件或"environments": { "dev": "environments/environment.ts", "prod": "environments/environment.prod.ts", "qa": "environments/environment.qa.ts" } 上定义新环境来实现此目的

angular-cli.json:

"configurations": {
  "production": { ... },
  "qa": {
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.qa.ts"
      }
    ]
  }
}

angular.json:

environment.qa.ts

接着在环境目录中创建import

通过here

了解更多信息

答案 1 :(得分:1)

如果您想在dev优化中使用environment.ts --prod值,只需用标志指定即可:

ng build --prod --environment=dev

这将应用--prod设置,但会覆盖将使用其环境文件的--environment

在新的Angular CLI版本中,将angular.json更改为--environment。由于默认配置使用--configuration,因此只需向其传递一个空字符串,这样环境文件就不会被覆盖,例如environment.ts