Угловая схема не создает файлы из шаблонов - PullRequest
0 голосов
/ 21 октября 2019

Я создал угловую схему для целей создания стандартного кода с помощью команды ng generate, однако, несмотря на все статьи, которые я прочитал и по которым возился, я не могу получить файлы для создания.

У меня есть следующий код на моей фабрике схем:

export function createComponent(_options: any): Rule {
    return (tree: Tree, _context: SchematicContext) => {
        setupOptions(tree, _options);

        const movePath = normalize(_options.path + '/' + strings.dasherize(_options.name));

        const templateSource = apply(url('./files'), [
            template({
                ...strings,
                ..._options,
            }),
            move(movePath)
        ]);

        return mergeWith(templateSource);
    };
}

В том же каталоге, что и это каталог с файлами, содержащий мой шаблон "__name@dasherize__.component.ts", которыйЯ ожидаю, что меня привлекут как часть функции url ('./ files'), но я не уверен, что это происходит.

Мой файл шаблона выглядит следующим образом:

import { Component } from '@angular/core';

@Component({
    selector: 'wx-<%= dasherize(componentName) %>'
})
export class <%= classify(componentName) %>Component {

}

Я ожидаю, что при создании схемы появится «CREATE», но все, что я получу, это «Ничего»должно быть сделано. '

Как ни странно, использование tree.create () успешно выполняется для создания файлов, поэтому мне интересно, работают ли функции url () или apply () должным образом.

1 Ответ

0 голосов
/ 29 октября 2019

Посмотрите на свои .npmignore и .gitignore. Может быть, вы игнорируете все .ts, что делает все ваши файлы с папкой .ts в папке / files будут игнорироваться.

Ваш .npmignore может выглядеть так:

# .npmignore
# Ignores TypeScript files, but keeps definitions and .ts under /files folder.
*.ts
!*.d.ts
!/src/**/files/*.ts

Не забудьте сделатьзапустить сборку npm, чтобы создать определения ts перед обновлением пакета npm.

...