Sto assemblando un generatore Yeoman e ho difficoltà a capire come funziona il parametro options di composeWith(). Il mio obiettivo è passare l'input dell'utente dal prompt del generatore principale ai sub-generatori e ho pensato che le opzioni fossero il modo per farlo.Usa composeCon opzioni nel sottogeneratore
mio generatore principale sta spingendo sembra qualcosa di simile:
prompting: function() {
var done = this.async();
var prompts = [
{
type : 'input',
name : 'name',
message : 'What is the name of your project?',
default : this.appname // Default to current folder name
}
];
this.prompt(prompts, function (answers) {
this.composeWith('app:subgenerator', {
options: {
name: answers.name;
}
},
{
local: require.resolve('generator-angular/app')
});
done();
}.bind(this)
)
}
ho provato nel mio sub-generatore per impostare una variabile locale utilizzando gli argomenti nel costruttore (perché davo per scontato che è dove sarebbero le opzioni), come questo:
module.exports = generators.Base.extend({
constructor: function() {
generators.Base.apply(this, arguments);
this.foo = arguments.options.name;
}
}
Ma questo non ha funzionato. Ho provato console a registrare la variabile arguments, e mostra che le opzioni sono un oggetto, ma sembra essere vuoto.
È così che posso passare l'input dell'utente attraverso un generatore a un altro o esiste un altro modo per farlo?
Sì, quello ha fatto il trucco. Non ho capito bene come funzionavano le opzioni dalla documentazione. Grazie! –
@JoshVickerson Sentiti libero di inviare un PR per chiarire la nostra documentazione, che sarebbe il benvenuto! –