2015-11-19 25 views
5

मैं Punch स्थिर साइट जनरेटर के लिए autoprefixer प्री-प्रोसेसर को कार्यान्वित करना चाहता हूं।मैं पंच ऑटोप्रेफ़िक्स प्री-प्रोसेसर को कैसे कार्यान्वित करूं?

हालांकि, पंच अनुपालन में, मुझे यकीन नहीं है कि यह एक कंपाइलर, मिनीफायर आदि के रूप में योग्य होगा। मैंने उपर्युक्त सभी को कोई फायदा नहीं हुआ है।

यहाँ मेरी कुछ भी हो रही काम करने में सबसे हाल का प्रयास है:

./autoprefixer.js

module.exports = { 
    input_extensions: [".css"], 
    force_compile: true, 
    compile: function(input, filename, callback){ 
     return callback(null, "*{color: red;}"); 
    } 
}; 

config.json

... 
    "plugins": { 
     "compilers": { 
      ".css": "punch-sass-compiler", 
      ".css": "autoprefixer" 
     } 
    } 
... 

result

/home/peter/projects/website/node_modules/punch/lib/asset_bundler.js:62 
         if (compiler && compiler.input_extensions.indexOf(template_extension) > -1) 
                   ^
TypeError: Cannot read property 'indexOf' of undefined 
    at /home/peter/projects/website/node_modules/punch/lib/asset_bundler.js:62:45 
    at /home/peter/projects/website/node_modules/punch/lib/template_handler.js:119:11 
    at fs.js:334:14 
    at /home/peter/projects/website/node_modules/punch/node_modules/fstream/node_modules/graceful-fs/graceful-fs.js:42:10 
    at FSReqWrap.oncomplete (fs.js:95:15) 

किसी को भी मुझे सही दिशा में चलाने कर सकते हैं?

उत्तर

1

ऐसा लगता है कि फिलहाल, पंच कंपाइलर्स केवल एक अलग एक्सटेंशन से संकलित हो सकते हैं (.mycss या .less कहें)। कि का उपयोग करके आप लगभग संपन्न कर लिया:

module.exports में, input_extensions: विस्तार आप इच्छा (नहीं .css), उदा में सेट होना चाहिए [".mycss"]

"plugins": { 
    "compilers": { 
     ".css": "punch-sass-compiler", 
     ".css": "autoprefixer" 
    } 
} 

वास्तव में अजीब है, क्योंकि आप एक ही कुंजी को दो बार परिभाषित कर रहे हैं। punch-sass-compiler लाइन हटाएं। यदि आप किसी अन्य कंपाइलर को आमंत्रित करना चाहते हैं, तो बस अपने कंपाइलर कोड में require इसका मॉड्यूल, अन्य कंपाइलर को कॉल करें और आपूर्ति की गई आउटपुट को अपनी पसंद में संशोधित करें।

पंच मिनिफायर आपके लक्ष्य के लिए उपयुक्त नहीं हैं, क्योंकि वे केवल उत्पादन में शामिल होते हैं (punch g के साथ), विकास करते समय नहीं।

+0

धन्यवाद! यह जानकारी सब बहुत उपयोगी है। (मुझे विश्वास नहीं है कि मैं उस डुप्लीकेट कुंजी को देख रहा हूं ...:!) मैं खुद को देख लूंगा, लेकिन क्या आपको पता है कि सामान्य एक्सटेंशन के लिए समर्थन जोड़ने के लिए संभव होगा? मौजूदा व्यवहार अप्रत्याशित है। यदि यह बहुत अधिक काम नहीं है, तो मैं एक पैच जमा करने पर विचार कर सकता हूं। हालांकि, ऐसा लगता है कि अपस्ट्रीम प्रोजेक्ट को छोड़ दिया गया हो सकता है। – pdoherty926

+0

@ pdoherty926 आउटपुट एक्सटेंशन आउटपुट से अलग होना चाहिए, और कुछ नहीं। यदि आपकी इनपुट फाइलें वैसे भी हैं, तो उन्हें '.scss' नाम क्यों न दें? – phihag

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