2017-05-17 5 views
0

yeomanの2つのプロンプト間でデータを渡すことはできますか?プロンプト間でデータを渡す

例:私は、私は、パッケージのデフォルト値としてnameプロパティを表示したい

{ 
    type: 'input', 
    name: 'Name', 
    message: 'Name?' 
},{ 
    type: 'input', 
    name: 'package', 
    message: 'Package?', 
    default: 'org.my.app.'+<prompt.name> 
} 

のような2つのプロンプトを持っていますか?私は考えることができる一つの方法は次のとおりです。ユーザーのための最終的なテンプレートを作成するときに

  • は後で変更
  • (例のように)値をデフォルトでテンプレートを表示します。私が試した

もう一つの方法は、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を与える任意のより良い方法はありますか?

答えて

1

私は最終的に答えを見つけました。それを達成する方法は、2つのプロンプト変数を使用し、最初の約束の後に2番目のプロンプト変数を実行することです。

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 
    }); 
}); 
関連する問題