watchãªãã·ã§ã³ã®ä½¿ãæ¹
Less & Sass Advent calendar 2011ã®11æ¥ç®ã§ãã
Sassã¯èªåãã³ã¼ãã£ã³ã°æ å½ã®æ¡ä»¶ã¯ã確å®ã«ä½¿ã£ã¦ããã®ã§ãããã¾ã ã¾ã 表é¢çãªä½¿ãæ¹ããã§ãã¦ãªãã®ããªã¨ãAdvent Calendarã®ä»ã®è¨äºãè¦ãã¨æãã¾ãã
ãã¦ãSassã使ã£ã¦CSSãæ¸ãã¦ããæã«ã¯ãã»ã¼ä¾å¤ãªããwatchãªãã·ã§ã³ã®ãä¸è©±ã«ãªããã¨ã¨æãã¾ãã
å¼ç¤¾ã®ãã¶ã¤ãã¼ã®ããæ¹ãªã©ãè¦ãã¨ãã¤ãã¤ãç解ãã¦ä½¿ã£ã¦ãªãæãããããããã®ã§ãå°ãç´°ãã説æããè¨äºããã£ã¦ãããã®ããªã¨æã£ã¦ããã®è¨äºãæ¸ããã¨ã«ãã¾ããã
ç¥ã£ã¦ã人ã«ã¯å½ããåããã¦ãå¾ããã®ããªãããããã¾ãããããã®ç¹ã¯ãäºæ¿ä¸ãã...
watchãªãã·ã§ã³ã¨ã¯ï¼
Sassã¯filename.sassã¾ãã¯ãfilename.scssã使ã£ã¦ãSassã®è¨æ³ããããã¯SCSSã®è¨æ³ã§æ¸ãããã¡ã¤ã«ããã³ãã³ãã©ã¤ã³ã使ã£ã¦filename.cssã«ã³ã³ãã¤ã«ããã¨ããæ¹æ³ã§ãCSSãã¡ã¤ã«ãä½ãã¾ããï¼ä»¥å¾ãSCSSã®è¨æ³ã使ããã¨ãåæã§æ¸ãã¾ãï¼
ãã®éãSCSSãã¡ã¤ã«ãæ´æ°ãããã³ã«ãæ¯åã³ã³ãã¤ã«ãç´ãã¨ããæé ãé常ã«é¢åãªã®ã§ããã¡ã¤ã«ã®æ´æ°ãç£è¦ããæ´æ°ãããã°ãèªåã§ã³ã³ãã¤ã«ãã¦ããããwatchãªãã·ã§ã³ãé常ã«å½¹ã«ç«ã¡ã¾ãã
watchãªãã·ã§ã³ã®ä½¿ãæ¹
Sassã®ãªãã¡ã¬ã³ã¹ã«watchãªãã·ã§ã³ã®æå®æ¹æ³ãæ¸ãã¦ããä»ãUnixã®ã³ãã³ãã©ã¤ã³ãã¼ã«ã®å¤ãã¯ãã³ãã³ãã©ã¤ã³ãªãã·ã§ã³ãã
commandname --help
ã¨å ¥åãããã¨ã§ç¢ºèªãããã¨ãã§ãã¾ãã
Sassã®å ´åãã
sass --help
ã¨å ¥åãããã¨ã§Sassã®ã³ãã³ãã©ã¤ã³ãªãã·ã§ã³ããã¹ã¦ç¢ºèªãããã¨ãã§ãã¾ãã*1
watchãªãã·ã§ã³ã®é ç®ãè¦ãã¨ã
sass --watch input.sass:output.css sass --watch input-dir:output-dir
ã¨ããã³ãã³ãã確èªã§ãã¾ãã
ã©ã¡ãããå¤æå ã¨å¤æå ãã³ãã³ã§åºåãå½¢ã§ãªãã·ã§ã³å¼æ°ãæå®ãããã¨ããããã¾ãã
SCSSãã¡ã¤ã«ã®ä½ãæ¹
人ããããããããã¾ããããSCSSãã¡ã¤ã«ã¯ç¨éããã¼ã¸ã«ãã£ã¦ãã¡ã¤ã«ãåãããã¨ãä¸è¬çãªã®ããªã¨æãã¾ãã
@importãå¼·åã§ãCSSã®@importã«ã¼ã«ã¨éããSassã®@importã¯ã¤ã³ãã¼ããããã¡ã¤ã«ãä¸ã¤ã®ãã¡ã¤ã«ã«çµåãã¦ããã¾ãã
Webãµã¤ãããã©ã¼ãã³ã¹ã®æ¹åãæµè¡ã£ãææã«ãCSSã®@importã¯HTTPã³ãã¯ã·ã§ã³ãå¤ãçºçãã¦ãã¾ãããããã¾ãããã¨ããæµãããã£ã¦ã@importã使ããã¨ãæ¶æ¥µçã«ãã¦ããæ¹ãããã£ãããã¨æãã¾ãããSCSSã®@importã¯ã¬ã³ã¬ã³ä½¿ã£ã¡ãã£ã¦ãæçµçã«ä¸ã¤ã®ãã¡ã¤ã«ã«çµåãããã®ã§ã¬ã³ã¬ã³ä½¿ã£ã¡ãã£ã¦åé¡ããã¾ããã
ãã¡ã¤ã«ã®ç£è¦ã¨ãã©ã«ãã®ç£è¦
watchãªãã·ã§ã³ã¯ããã¡ã¤ã«ã®ç£è¦ã¨ãã©ã«ãã®ç£è¦ãããã¨è¿°ã¹ã¾ããããä¸è¿°ã®SCSSãã¡ã¤ã«ã®ä½ãæ¹ã«æ¸ããããã«ãè¤æ°ã®ãã¡ã¤ã«ã@importã§çµåããå ´åããã¡ã¤ã«åä½ã®ç£è¦ã§ã¯ã¡ãã£ã¨å³ãããªã£ã¦ãã¾ãã
ä¾ãã°ã以ä¸ã®ãããªå ´åã
/* /scss/style.scss */ @import "hoge.scss"; @import "fuga.scss";
ãã¡ã¤ã«åä½ã®ç£è¦ãããã¨ä»¥ä¸ã®ãããªã³ãã³ãã«ãªããã¨æãã¾ãã
sass --watch scss/style.scss:css/style.css
ãã®æããã£ããwatchãªãã·ã§ã³ã§ç£è¦ãã¦ãã¦ããhoge.scssãfuga.scssãæ´æ°ãã¦ããstyle.scssã®æ´æ°ããããã¨ã«ã¯ãªããªãã®ã§ãstyle.cssãæ°ãã«ã³ã³ãã¤ã«ããããã¨ã¯ããã¾ããã
ãªã®ã§ãåºæ¬çã«ã¯ãã©ã«ãã®ç£è¦ããªã¹ã¹ã¡ã§ãã
åãä¾ã§ããã©ã«ãåä½ã®ç£è¦ãããã¨ä»¥ä¸ã®ãããªã³ãã³ãã«ãªãã¾ãã
sass --watch scss:css
ãã©ã«ãåãæå®ããã¨ãwatchãªãã·ã§ã³ã¯ãç£è¦å ãã©ã«ãã«æå®ãããã©ã«ãã«ä¿åããã¦ãã.scssã¨.sassãæ¢ãã¦ããã¡ã¤ã«ã®æ´æ°ãç£è¦ãã¦ããã¾ãã
å ã»ã©ã®ãã¡ã¤ã«ã®ç£è¦ã§ã¯ãhoge.scssãfuga.scssãæ´æ°ãã¦ããç£è¦å¯¾è±¡ã«å«ã¾ãã¦ããªãã£ãã®ã§ãstyle.cssãæ°ãã«ã³ã³ãã¤ã«ããããã¨ã¯ããã¾ããã§ãããããã®ãã©ã«ãã®ç£è¦ã§ããã°ãhoge.scssãfuga.scssãæ´æ°ããã¨ãstyle.cssãæ°ãã«ã³ã³ãã¤ã«ããã¾ãã
ã¢ã³ãã¼ã¹ã³ã¢ä»ããã¡ã¤ã«åã«ã¤ãã¦
ãã ãä¸è¨ã«é¢ãã¦ã1ç¹åé¡ãããã¾ãã
ããã¯ãhoge.scssãfuga.scssãããããããhoge.cssãfuga.cssã«ã³ã³ãã¤ã«ãããã¨ãããã¨ã§ãã
style.cssã¯ãæçµçã«HTMLã§èªã¿è¾¼ãCSSãã¡ã¤ã«ã§ãããhoge.cssãfuga.cssã¯ãstyle.cssã«çµåããã¦ããã°è¯ããç¡é§ãªä¸éææç©ããããã¾ããã
Sassã§ã¯ããã®ã±ã¼ã¹ã解決ããããã«ãPartialsã¨ããä»çµã¿ãç¨æãã¦ãã¾ãã
hoge.scssããfuga.scssã®ããã«ã@importã§çµåã¯ããããCSSãã¡ã¤ã«ã«ã³ã³ãã¤ã«ããå¿ è¦ããªããã¡ã¤ã«ã«ã¤ãã¦ã¯ã_hoge.scssã_fuga.scssã¨ããã¡ã¤ã«åã®å é ã«ã¢ã³ãã¼ã¹ã³ã¢ãå ¥åãã¦ãããã¨ã§ãã³ã³ãã¤ã«ãããªãSCSSãã¡ã¤ã«ã«ãããã¨ãã§ãã¾ãã
ãã®éãã¢ã³ãã¼ãã¼ãä»ããããã¨ãã£ã¦ã
/* /scss/style.scss */ @import "_hoge.scss"; @import "_fuga.scss";
ã¨ããå¿ è¦ã¯ããã¾ããã
ããã«è¨ãã¨ãsassãã¡ã¤ã«ã¾ãã¯ãscssãã¡ã¤ã«ã®å ´åã¯ãæ¡å¼µåãçç¥ã§ãã¾ãã
/* /scss/style.scss */ @import "hoge"; @import "fuga";
ãªã®ã§ãä¸è¨ã®ãããªæå®ãããã°çµæ§ã§ãã
ã¾ã¨ã
ã§ã¯ãã¾ã¨ãã§ãã
- Sassã®watchãªãã·ã§ã³ã¯ããã¡ã¤ã«åä½ã®ç£è¦ã¨ãã©ã«ãåä½ã®ç£è¦ããããããã©ã«ãåä½ã®ç£è¦ãããããã
- çµåå ã®scssãã¡ã¤ã«ã§ãcssã¨ãã¦ä½¿ç¨ãããã¨ããªããã¡ã¤ã«ã¯ãã¡ã¤ã«åã®å é ã«ã¢ã³ãã¼ã¹ã³ã¢ãä»ãã
ãªãã¡ã¬ã³ã¹ã«æ¸ãã¦ãããã¨ã§ãããå§ããã¦ã®é ã®èªåãã身è¿ãªäººãç解ã§ãã¦ãªãããã ã£ãã®ã§ãå°ãä¸å¯§ã«èª¬æãã¦ã¿ã¾ããã
Sassã¯ãä¸åº¦ä½¿ãåºãã¨ãªãã¦ã¯ãªããªããã¼ã«ã«ãªãã¨æãã®ã§ãã¾ã ã®æ¹ã¯ãã²ã試ããã ããã
ãªãã±
å人çã«ã¯ããã®ãããã®ã³ãã³ãã©ã¤ã³ã®æä½ã¯ã§ããããã«ãªã£ãæ¹ãããã¨æãã®ã§ãããã©ããã¦ãã³ãã³ãã©ã¤ã³ãã¼ã«ãé£ããæ¹ã¯ãGUIãã¼ã«ã§watchããæ¹æ³ãããã¾ãã
ã¾ã 使ã£ã¦ã¯ããªãã®ã§ãããCompassã¨ããSassåãã®CSSãã¬ã¼ã ã¯ã¼ã¯ããã£ã¦ããã®Compassç¨ã«GUIãã¼ã«ãããããã§ãã
- Scout - Compass and Sass without all the hassle
- Compass.app: compile Sass/Compass easily without resorting to command line interface
ã©ããã¦ãé£ããã¨ããæ¹ã¯ãä¸è¨ã®ãã¼ã«ã使ãã®ããããªããããªãã§ããããã
ã¢ããªãã¤ãããã©ããã¯ç½®ãã¦ããã¦ãå人çã«Compassã¯ä»å¾ä½¿ã£ã¦ãããããªã¨ã¯æã£ã¦ãã¾ããç¾ç¶ãSassã¨YUIã¨çµã¿åããã¦ãã¾ãããSassã«æé©åãããCompassã®æ¹ãè¯ãã®ããããã¾ãããã調ã¹ã¦ã¿ã¾ãã
LESSã«ãLESS.app For Mac OS Xã¨ããã¢ããªãããã¿ããã§ãã
LESSã¯ä½¿ã£ããã¨ãªãã§ããã©ãSassã«æ¯ã¹ã¦å¤§ããªã¢ããã³ãã¼ã¸ããã£ãã触ã£ã¦ã¿ããããªã
*1:æè¿ã®ãã¼ã¸ã§ã³ããããä»ã¾ã§æ°ã¥ããªãã£ãã ããªã®ããscssã£ã¦ã³ãã³ããããã¿ããã§ããã使ãæ¹ã¯sassã³ãã³ãã¨åãã§ãã