叶问用args代码调用生成器。

问题描述 投票:3回答:1

我有一个带子生成器的Yeoman生成器,我需要调用子生成器。通过代码 而我使用下面的代码,它是工作的,我看到子生成器被调用,我在终端得到了问题。

docs。https:/yeoman.ioauthoringintegrating-yeoman.html。

var yeoman = require('yeoman-environment');
var env = yeoman.createEnv();


env.lookup(function () {
    env.run('main:sub',err => {
        console.log('done' ,err);
    });
});

子发电机只有一个问题

 prompting() {

    const prompts = [
      {
        name: "app",
        message: "which app to generate?",
        type: "input",
        default: this.props.app,
      },
    ];

...

我想默默地调用它,这意味着要把值传给 app 虚心请教 我试着这样做,但没有用,(我在终端看到问题)

env.lookup(function () {
    env.run('main:sub',{"app":"nodejs"}, err => {
        console.log('done' ,err);
    });
});

也试过这个,但没有效果

env.lookup(function () {
    env.run('main:sub --app nodejs', err => {
        console.log('done' ,err);
    });
});

我怎么做呢?用代码来传递值(也许就像在单元测试中做的那样,但这个代码不是单元测试......当终端没有被调用时)从文档中看,我不知道如何传递值。https:/yeoman.ioauthoringintegrating-yeoman.html。

我也找到了这个,但不太明白如何用它来给生成器传递参数。http:/yeoman.github.ioenvironmentEnvironment.html#.lookupGenerator。有可能吗?

javascript node.js typescript yeoman yeoman-generator
1个回答
1
投票

你可以只做。

env.lookup(function () {
    env.run('main:sub',{"app":"nodejs"}, err => {
        console.log('done' ,err);
    });
});

和里面的 sub 子生成器,你可以通过 this.options.app.

要禁用问题提示,定义为 when 场内 问题对象 像这样。

prompting() {

    const prompts = [
      {
        name: "app",
        message: "which app to generate?",
        type: "input",
        default: this.props.app,
        when: !this.options.app
      },
    ];

    . . .

    return this.prompt(prompts).then((props) => {
      this.props = props;

      this.props.app = this.options.app || this.props.app;

    });
}
© www.soinside.com 2019 - 2024. All rights reserved.