angular cli生成组件正在忽略angular.json的默认值

时间:2019-04-11 20:25:21

标签: angular

似乎是一个旧问题,再次打开。 很难过,但是在:

Angular CLI: 7.3.7
  Node: 10.14.1
  OS: win32 x64
  Angular: 7.2.11
  ... animations, common, compiler, compiler-cli, core, forms
  ... http, language-service, platform-browser
  ... platform-browser-dynamic, router, service-worker

  Package                           Version
  -----------------------------------------------------------
  @angular-devkit/architect         0.13.7
  @angular-devkit/build-angular     0.13.7
  @angular-devkit/build-optimizer   0.13.7
  @angular-devkit/build-webpack     0.13.7
  @angular-devkit/core              7.3.7
  @angular-devkit/schematics        7.3.7
  @angular/cdk                      7.3.6
  @angular/cli                      7.3.7
  ...

ng生成组件仍在忽略angular.json上的默认设置:

      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "prefix": "ids",
      "schematics": {
        "@schematics/angular:component": {
          "inlineStyle": false,
          "inlineTemplate": false,
          "spec": false,
          "styleext": "scss"
        }
      },

因此,我需要在每一代组件上设置所有选项。 我唯一的线索是,它在npm install @ ngx / schematics之后再次发生。 就在几天前一切正常!

2 个答案:

答案 0 :(得分:1)

您可能已经通过以下命令安装了 @ ngrx / schematics

ng add @ngrx/schematics --defaultCollection

此命令将使用您首选的数据包管理器安装 @ ngrx / schematics ,更新您的 package.json 并更新您的 angular.json 文件添加以下内容:

"cli": {
    "defaultCollection": "@ngrx/schematics"
}

这将扩展标准的angular示意图,并添加通过ng generate添加NgRx特定文件的功能(例如动作,效果等...)。如果您以前曾对角度项目配置进行过更改(例如使用scss),则应更新原理图条目。

您只需要更改

"schematics": {
    "@schematics/angular:component": {
        "inlineStyle": false,
        "inlineTemplate": false,
        "spec": false,
        "styleext": "scss"
    }
},

"schematics": {
    "@ngrx/schematics:component": {
        "inlineStyle": false,
        "inlineTemplate": false,
        "spec": false,
        "styleext": "scss"
    }
},

您将在以下GitHub问题上获得更多信息:https://github.com/ngrx/platform/issues/1036

答案 1 :(得分:0)

删除@ ngxs / schematics(npm卸载@ ngxs / schematics),并从angular.json中删除引用@ ngxs / schematics的最后一个条目,只是使ng-cli组件默认值恢复原状。