我可以在 yeoman 中的两个提示之间传递数据吗?
例如,我有两个提示,例如
{
type: 'input',
name: 'Name',
message: 'Name?'
},{
type: 'input',
name: 'package',
message: 'Package?',
default: 'org.my.app.'+<prompt.name>
}
我想将 name
属性显示为包的默认值?我能想到的一种方法是:
- 默认显示模板(如示例所示)
- 稍后在为用户创建最终模板时更改该值。
我尝试的另一种方法是使用 when
{
type: 'input',
name: 'Name',
message: 'Name?'
},{
when: (response) => {
this.testValue = response.Name
return true
},
type: 'input',
name: 'package',
message: 'Package?',
default: 'org.my.app.'+this.testValue
}
但即使函数内部的值已存储在 this.testValue
undefined
还有什么更好的办法吗?
最佳答案
我终于找到答案了。实现它的方法是使用两个提示变量并在第一个 Promise 返回后运行第二个变量
const prompt1 = [{
type: 'input',
name: 'Name',
message: 'Name?'
}];
return this.prompt(prompt1).then(props => {
const prompt2 = [{
type: 'input',
name: 'package',
message: 'Package?',
default: 'org.my.app.'+props.name
}];
return this.prompt(prompt2).then(props => {
//code goes here
});
});
关于javascript - 在提示之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44020490/