【问题标题】:Angular CLI 6.0.1 how to control dev environment and webpackAngular CLI 6.0.1 如何控制开发环境和 webpack
【发布时间】:2018-10-31 06:31:47
【问题描述】:

这是 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"
                }
              ]
            }

我要做的是控制开发环境。例如,将sourceMap 更改为false,我不想通过向ng build 添加参数来做到这一点。 angular.json 中是否有任何与 production 等价的东西来指代开发

还有一点非常重要:在 Angular-CLI 6 中没有 ng eject!那么,如何查看和修改 webpack.config.js

【问题讨论】:

  • 为什么在没有任何 cmets 的情况下被否决了?这是一个很好的问题,因为 Angular CLI 文档没有指定任何关于如何控制 development 构建配置的内容。接受的答案中的两个选项都是有效的。
  • 感谢您的评论。我真的不明白为什么有些人在无法回答的情况下投反对票!!

标签: angular webpack angular-cli-v6


【解决方案1】:

所有环境的默认设置都在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"
                }
            ]

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

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

ng serve -c development

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

【讨论】:

  • 非常感谢您的回答。顺便说一句,你知道为什么 angular-cli 为我的项目中的一些文件创建源映射文件吗?不是针对组件、服务等,而是针对一些创建模型和常量的 .ts 文件......
  • 我假设它为每个 ts 文件创建源映射
【解决方案2】:

我在这里找到了 webpack 配置:node_modules/@angular-devkit/build-angular/src/angular-cli-files/models/webpack-configs/common.js

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-04
    • 2017-08-11
    • 2017-09-17
    • 2017-01-27
    • 2018-07-28
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    相关资源
    最近更新 更多