Вызов генератора йоменов из кода с опциями - PullRequest
0 голосов
/ 16 декабря 2018

Я создал генератор yeoman с взаимодействием с пользователем, который можно вызвать в терминале, например (после запуска npm link):

yo mygenerator --name test --path /test/path --project testproject

Теперь я хочу включить этот генераторв моем расширении vscode.

Как я могу вызвать генератор йо из моего машинописного кода, когда генератор добавляется как зависимость package.json?

Так что-то вроде (псевдокод)

import { yo } from 'yeoman';
import mygenerator; // added as a dependency via package.json

const options = {
   name: 'test',
   path: '/test/path',
   project: 'testproject',
};
yo.exec(mygenerator, options, () => {
    console.log('yeoman finished')
});

Возможно ли что-то подобное?

1 Ответ

0 голосов
/ 11 августа 2019

Вот решение для этого:

const env = yeoman.createEnv();
const generatorPath = '../node_modules/generator-name/generators/app/index.js';
env.getByPath(generatorDir);
env.on('error', (err: any) => {
  // handle error
});
const options = {
  env,
  'option1': option1,
  'option2': option2,
};
try {
  await env.run('name', options);
} catch (err) {
  // handle error
}
...