angular 7 cli генерирует каждый сервис, канал и т. д. в своем собственном каталоге - PullRequest
0 голосов
/ 31 января 2019

В ранних версиях 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 ? Я не нашел ничего связанного, но, возможно, я не использую правильные ключевые слова.

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Хотя вы можете передавать --flat=false каждый раз, когда выполняете ng generate, так что каталог создается на основе имени службы / канала / директивы, вы можете переопределить параметры схемы по умолчанию, такие как flat на уровне проекта, вangular.json, чтобы избежать необходимости каждый раз передавать параметр --flat=false в командной строке.Например, чтобы установить flat в false при выполнении ng g service services/MyService, вы добавили бы дополнительное свойство @schematics/angular:service в свойство schematics соответствующего проекта в 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 на том же уровне, что и projects, чтобы переопределить параметры схемы для всех проектов.

Надеюсь, это поможет!

0 голосов
/ 31 января 2019

При создании службы флаг flat по умолчанию равен true.

Я предлагаю одно из следующего (не тестировалось на Angular CLI 7, но оба работают с Angular CLI 6)

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