2012-11-25 11 views
8

मुझे घोंसले को समझने में परेशानी हो रही है जो कभी-कभी grunt.js फ़ाइलों में दिखाई देती है। निम्नलिखित उदाहरण में, नेस्टेड ऑब्जेक्ट्स जैसे concat.dist और min.dist का अर्थ क्या है? dist कुंजी किसी अन्य नामित कार्य का संदर्भ दे रहा है या यह केवल एक कॉन्फ़िगरेशन ऑब्जेक्ट है? concat और min कार्यों को निष्पादित करते समय वास्तव में क्या कहा जाता है?grunt.js फ़ाइलों में नेस्टेड ऑब्जेक्ट अक्षर का क्या अर्थ है?

module.exports = function (grunt) { 
    grunt.initConfig({ 
    // … 
    concat: { 
     dist: { 
     src: ["<banner:meta.banner>", "<file_strip_banner:lib/main.js>"], 
     dest: "dist/main.js", 
     } 
    }, 
    min: { 
     dist: { 
     src: ["<banner:meta.banner>", "<config:concat.dist.dest>"], 
     dest: "dist/main.min.js", 
     } 
    }, 
    // … 
    }); 

    // … 
    grunt.registerTask("default", "lint qunit concat min"); 
}; 

उत्तर

10

घुरघुराना में, कार्यों कि घोंसले के इस प्रकार का समर्थन multi tasks कहा जाता है, और नेस्टेड वस्तुओं लक्ष्य कहा जाता है। मान लीजिए आप निम्नलिखित बहु कार्य है:

concat: { 
    dist: { 
     src: ["<banner:meta.banner>", "<file_strip_banner:lib/main.js>"], 
     dest: "dist/main.js", 
    }, 
    dev: { 
     (...) 
    } 
} 

इसका मतलब है आप लक्ष्य जिले और देव इसके अंदर के साथ बहु कार्य concat है। आप कंसोल पर कार्य का नाम टाइप करके किसी भी बहु कार्य के सभी लक्ष्यों को चला सकते हैं। उदाहरण के लिए:

grunt concat 

दोनों कॉन्सट और देव दोनों चलाएंगे। दूसरी ओर, आप भी निर्दिष्ट कर सकते हैं जो स्पष्ट रूप से चलाने के लिए लक्षित कर:

grunt concat:dist 

केवल जिले लक्ष्य पर अमल होगा।

जहाँ तक मुझे पता है, अगर आप एक ही नाम के लक्ष्य (अपने उदाहरण min.dist और concat.dist की तरह) के साथ दो multitasks है, इसका मतलब यह नहीं है कि दोनों जिले किसी भी तरह कर रहे हैं एक ही बात का संदर्भ देते हुए, वे सिर्फ वही नाम साझा करते हैं।

+0

मेरा मानना ​​है कि क्या आप "लक्ष्य" के रूप में संदर्भ दे रहे किया gruntjs में उप-कार्य कहा जाता है। यहां एक मल्टीटास्क है जो 'dist' और' dev' का उपयोग करता है उदाहरण के रूप में subtasks – jonschlinkert

+0

गितब पर ग्रंट के दस्तावेज़ में वे शब्द लक्ष्य का उपयोग करते हैं: "आप कार्य के नाम को निर्दिष्ट करके किसी भी बहु कार्य के सभी लक्ष्यों को चला सकते हैं। इस मामले में , ग्रंट लिंट चलाना स्वचालित रूप से सभी लक्ष्य चलाएगा ... " – alemangui

+0

दिलचस्प, ऐसा लगता है कि वे" लक्ष्य "आधिकारिक रूप से दस्तावेज कर रहे हैं, लेकिन सबटास्क का विवरण और उदाहरणों में भी बहुत कुछ उपयोग किया जाता है - खासकर टास्क रिपोज़ (SO मैंने प्रदान किया गया लिंक हटा दिया)। क्या आप जानते हैं कि क्या दो शर्तों के बीच अंतर होना है? या लक्ष्यों का वर्णन करने के लिए "पुरानी अवधि" subtask था? इस बिंदु पर सिर्फ उत्सुकता से, विशेष रूप से यह देखते हुए कि नए ग्रंट उपयोगकर्ताओं को इससे भ्रमित किया जा सकता है। – jonschlinkert

0

जवाब राज्यों की तरह, उन या "बहु लक्ष्य" .. मैं बहु कार्यों पर एक vid here