Создание нового модуля с использованием угловых схем - PullRequest
0 голосов
/ 05 ноября 2018

Мы хотели бы использовать схемы для создания функционального модуля, который содержит компоненты, которые мы генерируем снова и снова.

Я начал читать этот урок: https://medium.com/@michael.warneke/merging-custom-angular-schematics-c14a303f63b6

Но когда я создал файл __name@dasherize@singularize__.module.ts и попытался построить проект, я получил ошибки компиляции TS.

Вот так выглядит мой файл:

import { ModuleWithProviders, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

@NgModule({
    imports: [
        CommonModule,
    ],
    declarations: [],
    providers: [],
    entryComponents: []
 })
export class <%= classify(name) %>Module {
    static forRoot(): ModuleWithProviders {
        return {
            ngModule: <%= classify(name) %>Module,
            providers: []
        };
     }
}

И это ошибка:

ошибка TS6133: объявлен «ModuleWithProviders», но его значение никогда не читается.

1 Ответ

0 голосов
/ 10 ноября 2018

Из вашего поста похоже, что это ошибка времени компиляции, т.е. npm run build, а не ошибка времени генерации, то есть ng new CustomSchematic --collection my-custom-schematic.

Наиболее частым виновником такого поведения является то, что Typescript использует свои правила проверки в отношении ваших активов схемы. В этом случае я ожидаю, что ваше tsconfig.json будет иметь следующее свойство и значение "noUnusedLocals": true. Установка этого свойства в false, вероятно, не является хорошей долгосрочной стратегией, поскольку это будет означать, что весь код приложения схемы больше не выполняет это правило проверки.

Вместо этого (и то, что я выбрал для моих проектов ), это добавить следующее свойство в файл tsconfig.json:

"exclude": [
    "src/*/files/**/*"
]

Это должным образом исключит все ваши активы в папке files каждой схемы в вашей коллекции схем.

/src
  /ng-new
     /files
        custom-asset.ts
        custom-asset.html
     index.ts
     index_spec.ts
  /custom-service
     /files
        custom-asset.ts
     index.ts
     index_spec.ts

Мне не удалось полностью воспроизвести вашу проблему, поэтому, если у вас есть общедоступная ссылка на репо, вы можете поделиться ею. Однако, когда я удаляю настройку excludes в своем tsconfig.json, я перехожу из компиляции в значительное количество ошибок Typescript, поэтому я уверен, что это верное направление.

В качестве заключительной подсказки, если вы используете код VS и отображается панель Проблемы , вы можете применить ту же стратегию подавления ошибок, используя путь к файлу !src/*/files/**/*.

Suppress TS errors in schematic assets in VS Code

...