У меня есть генератор 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 какие-то дополнительные настройки, чтобы иметь это из коробки.