Sunday 15 April 2012

node.js - Grunt.js output and write contents of folder to file? -


लक्ष्य:

गतिशील रूप से / static / js / ** / *। Js < / Code> और / static / css / ** / * .css फ़ाइलें भी

विधि:

मैं क्लाइंट साइड टेम्पलेटिंग आंशिक उपयोग कर रहा हूं, इसलिए इस उदाहरण में, मैं सभी में फाइलपथों को लिखना चाहूंगा:

/ static / js / ** / *। Js भी /templates/head.js.dust
/ static / css / ** / * .css बहुत /templates/head.css.dust

फ़ाइल पथ पाठ्यक्रम के लिए पर्याप्त नहीं हैं। मुझे आउटपुट को पूर्वप्रक्रिया करने का एक तरीका चाहिए ताकि प्रत्येक "फाइल" उचित टैग द्वारा लिपटे जाएं जैसे:

  & lt;! - /templates/head.js.dust - & gt; & Lt; script src = "/ static / js / assests / jquery.js" & gt; & lt; / स्क्रिप्ट & gt; & Lt; script src = "/ static / js / assests / jquery_ui.js" & gt; & lt; / स्क्रिप्ट & gt; & Lt; script src = "/ static / js / app.js" & gt; & lt; / स्क्रिप्ट & gt; ... & lt;! - /templates/head.css.dust - & gt; & Lt; link src = "/ static / css / assests / jquery_ui.css" / & gt; & Lt; link src = "/ static / css / app.css" / & gt; ...   

प्रश्न:

क्या वहां से कोई कठोर मॉड्यूल है जो पहले से ही ऐसा कुछ करता है?

बोनस अंक: मैं कैसे ऐसा कुछ भी शुरू कर सकता हूँ अगर ऐसा नहीं होता?

आप एक बहुत ही आसान तरीके से ऐसा कर सकते हैं:

  grunt.registerMultiTask (" assetAppend "," एक फ़ाइल में जेएस / सीएसएस संपत्ति जोड़ें ", फ़ंक्शन () {var पथ = Grunt.file.expand (this.data.paths), बाहर = this.data.output, सामग्री = ""; paths.for प्रत्येक (फ़ंक्शन (पथ) {if (/। Js $ / i.test (पथ) ) {Content + = '& lt; script src = "' + path + '" & gt; & lt; / script & gt;';} और यदि (/ \ .css $ / i.test (पथ)) {सामग्री + = '& lt ; लिंक rel = "स्टाइलशीट" प्रकार = "टेक्स्ट / सीएसएस" href = '+ + पथ +' / & gt; ';}}); grunt.file.write (बाहर, सामग्री);}); Grunt.initConfig ({assetAppend: {js: {paths: ["static / js / ** / *। Js"], आउटपुट: "head.js.dust"}, सीएसएस: {पथ: ["स्थैतिक / सीएसएस / ** / *। Css "], आउटपुट:" head.css.dust "}}});   

यह उदाहरण अब मेरे प्लगइन का हिस्सा है

No comments:

Post a Comment