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

时间:2019-01-31 19:19:18

标签: angular angular-cli-v7

当我运行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 ?我没有发现任何相关内容,但也许我没有使用正确的关键字。

2 个答案:

答案 0 :(得分:3)

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

angular.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,以覆盖所有项目的逻辑示意图选项。

希望有帮助!

答案 1 :(得分:1)

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

我建议使用以下方法之一(尚未在Angular CLI 7上进行测试,但都可以在Angular CLI 6上使用)

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