Я пишу CLI с использованием Oclif, и я пытаюсь запустить c пользовательскую схему, которую я создаю, но если я запускаю разделение с помощью команды "ng add", схемы запрашиваются правильно. Если я запускаю схемы c из Oclif, он ничего не спрашивает.
Примеры:
Работает: В терминале: ng добавьте D: / projects / schematics / ams-front-schematics
Не работает:
export default class New extends Command {
static description = 'Generate new project based in archetype';
static args: Parser.args.IArg[] = [ { name: 'PROJECT_NAME', required: true } ];
private answers: any;
async run(): Promise<any> {
const { args }: { args: Parser.args.Output } = this.parse(New);
const name: string = args.PROJECT_NAME;
process.setMaxListeners(0);
require('events').EventEmitter.defaultMaxListeners = 100;
await runCommand(`ng add D:/projects/schematics/ams-front-schematics`, {}, (...args: any[]) => this.log(...args)););
}
}
Запустить только функцию команды exe c: библиотека npmRun.
export function runCommand(commands: string, options: any = {}, debug: (...args: any[]) => void) {
return new Promise(resolve => {
debug('command', commands);
npmRun.exec(commands, options, (err: any, stdout: any, stderr: any) => {
debug('err', err);
debug('stdout', stdout);
debug('stderr', stderr);
if (err) {
debug(stderr);
debug('End', err);
resolve();
} else {
debug(stdout);
debug('End', true);
resolve();
}
});
});
}