2011-04-08 12 views
8

संकलन समय पर एक एसएएस वैरिएबल सेट करना संभव है? मैं मूल रूप से ऐसा करना चाहते हैं:SASS: संकलन समय पर सेट चर


$color: red !default; 
div#head { 

    background-color: $color; 

}

मैं $ रंग सेट करना चाहते हैं जब मैं सीएसएस को संकलित करने के लिए "नीले" (अधिमानतः कमांड लाइन से)। क्या कोई ऐसा करने में सक्षम है?

धन्यवाद, क्रिस

+0

मुझे पूरा यकीन नहीं है कि मैं आपका प्रश्न समझता हूं, आप इस चर को कमांड लाइन में सेट करना चाहते हैं? 'Sass --style संपीड़ित - वॉच scss की तरह: css --vars $ color = blue;' '<- यह लाइन काम नहीं करेगी, मैंने अभी इसे अपने प्रश्न को चित्रित करने के लिए बनाया है – Jannis

+0

हां, यह बिल्कुल है मैं क्या करना चाहता हूँ! – Kenzic

+1

उस मामले में मुझे नहीं लगता कि यह अभी संभव है। क्षमा करें मैं और अधिक मदद नहीं कर सका। एकमात्र चीज जिसे मैं कल्पना कर सकता हूं कि आप एक कस्टम बैश/रूबी स्क्रिप्ट बना सकते हैं जो एक चर को एक फ़ाइल में जोड़ता है, फिर मुझे लगता है कि सीएसएस में स्कैस फ़ाइलों के ढेर को संकलित करता है। – Jannis

उत्तर

6

मैं उनके पूछे जाने वाले प्रश्न http://sass-lang.com/docs/yardoc/file.FAQ.html

तुम सिर्फ सीएसएस के लिए हर समय यह संकलित हो जाता है --watch का उपयोग कर की तरह, कुछ चर पास करना चाहते हैं, तो आप Sass functions उपयोग कर सकते हैं यहां तक ​​कि एक डेटाबेस क्वेरी करने के लिए रूबी लिपियों को परिभाषित करने पर यह पाया। लेकिन कोड केवल एक बार संकलित किया जा रहा है, और स्थिर रूप से सेवा की।

लेकिन आप विभिन्न विकल्पों के साथ हर अनुरोध पर यह पुन: संयोजित करने के लिए, की जरूरत है

आप Sass::Engine का उपयोग कोड प्रस्तुत करना सकता है, :custom option का उपयोग कर डेटा में पारित करने के लिए है कि can be accessed अपने सास से काम करता है

ऐसा लगता है कि इसकी अनुशंसा नहीं की जाती है, हालांकि। शायद प्रदर्शन कारणों के लिए।

6

कमांड लाइन विकल्पों में से एक वैकल्पिक चर के मान निर्दिष्ट अन्य फ़ाइलें बनाने के लिए है।

मान लें कि उपरोक्त आपका कोड 'style.scss' नाम की फ़ाइल में है। $ रंग सेट करने के लिए "नीले", इस तरह के रूप में एक फ़ाइल बनाने के लिए:

$color: blue; 
@import "style"; 

और उदाहरण के लिए 'blue.scss' के लिए यह नाम। फिर इसे नीचे संकलित करें।

sass blue.scss:style.css 

आप वेरिएबल को एक और मान देना, जैसे "green.scss" नामक एक अन्य फ़ाइल बनाने चाहते हों:

$color: green; 
@import "style"; 

तो यह

sass green.scss:anotherstyle.css 

यह परेशान कर रहा है के साथ संकलन कुछ हद तक संकलन समय पर चर के मान तय करने में सक्षम बनाता है।

+1

डॉन वास्तव में नहीं लगता कि काम करेगा। मेरा उदाहरण प्रदर्शन उद्देश्यों के लिए सरल है, लेकिन मैं एकाधिक चर सेट करना चाहता हूं। – Kenzic

+1

बेशक आप एक आयात फ़ाइल में एकाधिक चर डाल सकते हैं। क्या आपका मतलब है कि आपको फ़ाइल var.c {var1: val1B, var2: val2B, ...} को फ़ाइलबी में {var1: val1A, var2: val2A, ...} जैसे मानों के बहुत से संयोजन के साथ व्यक्तिगत फ़ाइलों को उत्पन्न करने की आवश्यकता है। .css, fileC.css fileD.css ...? यदि हां, तो मेरा जवाब बहुत बुरा नहीं हो सकता है। लेकिन यह तब भी उपयोगी है जब आप सीएसएस फाइलें जेनरेट करना चाहते हैं जिसमें एक दूसरे को एक स्कैस फ़ाइल से अलग अंतर होता है। ईजी। अधिकांश सीएसएस शैलियों को साझा किया जाता है और शैलियों को पीसी/टैबलेट/स्मार्टफोन जैसे उपकरणों के बदलाव के लिए कुछ बदलावों की आवश्यकता होती है। इसे युद्धों के एक सेट को परिभाषित करने के लिए केवल 3 फाइलों की आवश्यकता है। – reppets

+0

या यदि आप का मतलब है कि आप कई adhoc मानों को आजमा सकते हैं, तो आयात फ़ाइल संपादित करें और सास चलाने के साथ - वॉच विकल्प मदद मिलेगी। – reppets

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