2013-10-15 11 views
6

मेरे पास कई एनपीएम मॉड्यूल हैं जो मैं एक सामान्य लिफ्टिंग कॉन्फ़िगरेशन का उपयोग करना चाहता हूं। मेरे पास ग्रंट के माध्यम से एक परियोजना पर काम कर रहे जिशिंट और क्लोजर लिटर हैं। लेकिन प्रत्येक प्रोजेक्ट के लिए .jshintignore फ़ाइल और .jshintrc फ़ाइल को कॉपी/पेस्ट करना अनावश्यक होने वाला है, खासकर जब कुछ बदलने की जरूरत है। तो आदर्श मैं एक एकल घुरघुराना काम है कि आम विन्यास समाहित करना चाहते हैं औरग्रंट: दो मल्टीटास्क को अन्य मल्टीटास्क प्लगइन के रूप में कैसे लिखें?

grunt.loadNpmTasks('grunt-mysuperlint'); 

के माध्यम से लोड किया जा सकता कहाँ grunt-my-common-lint-tasks वास्तव में दोनों JSHint और बंद लिंटर के लिए केवल विशिष्ट डिफ़ॉल्ट विन्यास है।

लेकिन मुझे दो मौजूदा गंदे प्लगइन्स को एक में लिखने का कोई तरीका नहीं दिखता है, जहां एकमात्र वास्तविक संरचना विकल्पों के साथ-साथ लक्ष्यों का विलय हो रही है।

क्या यह संभव है?

grunt.registerMultiTask('mysuperlint', function() { 
    // Manual options merging? 
    var opts = this.options({ 
     jshint: { src: 'scripts/**/*.js', options: { ... } }, 
     closureLinter: { src: 'scripts/**/*.js', options: { ... } } 
    }); 
    grunt.config.set('jshint.dev', opts.jshint); 
    grunt.config.set('closureLinter.dev', opts.closureLinter); 
    grunt.task.run('jshint:dev'); 
    grunt.task.run('closureLinter:dev'); 
}); 

कोई मदद या संकेत वास्तव में सराहना की जाएगी:

मैं की तरह कुछ क्या करना चाहिए।

+2

असल में यह स्निपेट ठीक दिखता है। समस्या क्या है? –

+2

उस समय यह बहुत ही हास्यास्पद महसूस हुआ। – Andrew

+0

दुर्भाग्य से उन्होंने अभी तक एक बेहतर एपीआई नहीं बनाया है। यह अगली बड़ी रिलीज –

उत्तर

0

हालांकि यह सीधे आपके प्रश्न का उत्तर नहीं देता है, मैं आपकी मूल समस्या के लिए एक साधारण चाल का सुझाव दे सकता हूं: आपके पास एक वैश्विक .jshintignore फ़ाइल और प्रत्येक प्रोजेक्ट से सॉफ्ट-लिंक हो सकता है। यह एक हैक की तरह है लेकिन यह आसान तरीका है

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