angular 7 cli 在各自的目录中生成每个服务、管道等

angular 7 cli generate each service, pipe,etc in their own directory

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

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 ?我没有找到任何相关的东西,但也许我没有使用正确的关键字。

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

我建议以下之一(尚未在 Angular CLI 7 上测试,但两者都适用于 Angular CLI 6)

ng g service services/my-service --no-flat
ng g service services/my-service --flat=false

虽然您可以在每次执行 ng generate 时传递 --flat=false 以便根据 service/pipe/directive 名称创建目录,但实际上您可以覆盖默认的原理图选项,例如 flatangular.json 中的项目级别,以避免每次在命令行上都需要传递 --flat=false 选项。例如,要在执行 ng g service services/MyService 时将 flat 设置为 false,您可以在 schematics [=] 中添加额外的 属性、@schematics/angular:service angular.json 中相应项目的 38=]:

...
"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 看到默认的原理图选项。有许多选项,您可以精确调整您想要生成的内容以及如何避免需要记住选项并将选项传递给命令行。

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

希望对您有所帮助!