首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Oclif中执行角度示意图

如何从Oclif中执行角度示意图
EN

Stack Overflow用户
提问于 2020-02-23 20:26:26
回答 1查看 320关注 0票数 0

我正在使用Oclif编写一个CLI,并试图执行我构建的自定义原理图,但是如果我使用"ng add“命令启动分离,则图表要求是正确的。如果我从Oclif发出示意图,它什么都不问。

示例:

作品:航站楼: ng add :/projects/ams-前台示意图

不要工作:

代码语言:javascript
复制
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)););
  }
}

只运行命令函数exec: npmRun库。

代码语言:javascript
复制
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();
      }
    });
  });
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-28 06:19:07

您可以简单地将角度示意图cli @angular-devkit/schematics-cli集成到oclif项目中。

按照下面的代码片段,@angular-devkit/schematics-cli

  • then在您的项目中安装角度示意图cli,@schematics/angular

  • and在您的项目中安装npm i@schematics/angular

  • and的角度示意图,然后根据下面的代码更新您的主命令文件。并通过./bin/运行项目dir

运行cli即可。

注意:用于测试您必须从角项目运行此命令

代码语言:javascript
复制
import { Command } from "@oclif/command";
import { main } from "@angular-devkit/schematics-cli/bin/schematics";

class AngularSchematicsCli extends Command {
  ...
  async run() {
    ...
    await main({
      args: ["@schematics/angular:component"],
    });
    
    // You can customise this args according to angular schematics 
    // args: ["@schematics/angular:component", "--name=test"],
  }
}

export = AngularSchematicsCli;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60366513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档