我有一个带子生成器的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。有可能吗?
你可以只做。
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;
});
}