1

在我运行 Angular Cli 的早期版本时,ng g service services/MyService它创建了:

services/my-service/my-service.service.ts
services/my-service/my-service.service.spec.ts

但现在它创造了

services/my-service.service.ts
services/my-service.service.spec.ts

有没有办法在不写详细信息的情况下回到其他行为ng g service services/my-service/MyService ?我没有找到任何相关但也许我没有使用正确的关键字。

4

2 回答 2

5

虽然您可以在--flat=false每次执行时传递ng generate,以便根据服务/管道/指令名称创建目录,但您实际上可以覆盖默认原理图选项,例如flat在项目级别,angular.json以避免--flat=false每次都需要在命令上传递选项线。例如,要在执行时设置flat为,您可以在相应项目的属性中添加一个附加属性:falseng g service services/MyService@schematics/angular:serviceschematicsangular.json

...
"projects": {
    "sample-angular": {
      "root": "",
      "sourceRoot": "src",
      "projectType": "application",
      "prefix": "app",
      "schematics": {
        "@schematics/angular:service": {
          "flat": false
        }
     },
     ...
}

添加此覆盖后,运行命令会ng g service services/MyService生成以下输出:

CREATE src/app/services/my-service/my-service.service.spec.ts (349 bytes)
CREATE src/app/services/my-service/my-service.service.ts (138 bytes)

您可以覆盖所需的任何特定原理图,无论是用于管道、服务、组件、模块还是指令。您可以在 中查看默认原理图选项/node_modules/@angular/cli/lib/config/schema.json。有许多选项,您可以精确调整您想要生成的内容以及如何避免需要记住选项并将选项传递给命令行。

如果您有多个项目,您可以schematics在同一级别创建一个属性,projects以覆盖所有项目的原理图选项。

希望这会有所帮助!

于 2019-01-31T19:49:51.243 回答
2

flat标志默认为true生成服务时。

我建议以下其中一项(尚未在 Angular CLI 7 上进行测试,但都适用于 Angular CLI 6)

ng g service services/my-service --no-flat
ng g service services/my-service --flat=false
于 2019-01-31T19:35:09.540 回答