RegisterStub Yeoman-генератора неправильно устанавливает шаблон sourceRoot - PullRequest
0 голосов
/ 09 декабря 2018

У меня есть генератор yeoman для унаследованного приложения, над которым я работаю, и он отлично работает.

Я пытаюсь разработать небольшую нодовую программу, чтобы вместо этого вызывать ее напрямую через yo.Следуя инструкциям на Интеграция Yeoman , моя программа выглядит следующим образом:

var yeoman = require('yeoman-environment');
var GeneratorApp = require('./generators/app/index.js');
var env = yeoman.createEnv();
env.registerStub(GeneratorApp, 'mygen:app');
env.run('mygen:app', (err) => {
    if (err) {
        console.log(err.message);
    }
});

, когда я запускаю свою программу, внутри генератора вместо sourceRoot() устанавливается относительно текущей папкигде установлен генератор:

sourceRoot() => c:\Users\Daaren\Documents\working\standard\applications\templates

Вместо:

sourceRoot() => C:\Projects\generator-mygen\generators\app\templates

, который возвращается, когда я запускаю генератор, как yo mygen.

Документы Йомана предполагаютиспользовать getGeneratorsMeta() для получения этой информации в свойстве resolved, но она не работает на генераторах, зарегистрированных с registerStub (как четко указано);Я не хочу заставлять пользователей регистрировать мой генератор, просто используйте его через программу узла.

Конечно, я думаю, что могу создать обходной путь, передав дополнительный параметр генератору с путем запускапрограмма, но я бы знал, есть ли у Yeoman-generator какие-то дополнительные настройки, чтобы иметь это из коробки.

...