2015-04-22 6 views
10

में विकल्पों के साथ मैं एक योन जनरेटर को एक साथ रख रहा हूं और समझने में परेशानी महसूस कर रहा हूं कि रचना के विकल्प पैरामीटर कैसे() काम करता है। मेरा लक्ष्य मुख्य जेनरेटर के प्रॉम्प्ट से उप-जनरेटर से उपयोगकर्ता इनपुट पास करना है, और मैंने सोचा कि विकल्प ऐसा करने का तरीका था।कंपोज़ का उपयोग करें उप-जनरेटर

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) 
) 
} 

मैं अपने उप जनरेटर एक स्थानीय निर्माता में तर्कों का उपयोग (क्योंकि मैं मान लिया है कि जहां विकल्प होगा है चर सेट करने के लिए कोशिश की है:

मेरा मुख्य जनरेटर उत्साह है कुछ इस तरह दिखता), इस तरह:

module.exports = generators.Base.extend({ 
    constructor: function() { 
    generators.Base.apply(this, arguments); 
    this.foo = arguments.options.name; 
    } 
} 

लेकिन यह काम नहीं किया। मैंने कंसोल वैरिएबल लॉगिंग कंसोल करने की कोशिश की, और यह दिखाता है कि विकल्प एक वस्तु है, लेकिन यह खाली प्रतीत होता है।

क्या यह एक जनरेटर के माध्यम से उपयोगकर्ता इनपुट को पास कर सकता है, या ऐसा करने का कोई और तरीका है?

उत्तर

7

आपके उप-जनरेटर को केवल लिखे जाने की आवश्यकता है जैसे आप सामान्य विकल्पों की अपेक्षा करते हैं।

module.exports = generators.Base.extend({ 
    constructor: function() { 
    generators.Base.apply(this, arguments); 

    this.option('name'); 
    }, 

    initializing: function() { 
    console.log(this.options.name) 
    } 
} 

अधिक जानकारी के लिए user interaction documentation देखें।

+0

हाँ, यह चाल है। यह समझ में नहीं आया कि दस्तावेज से विकल्प कैसे काम करते थे। धन्यवाद! –

+0

@ जोशविकर्सन हमारे प्रलेखन को स्पष्ट करने के लिए पीआर भेजने के लिए स्वतंत्र महसूस करते हैं, जिसका स्वागत किया जाएगा! –

संबंधित मुद्दे