ãã®èšäºã§ã¯ãæ¥åžžæ¥åã«æ ¹ä»ããŠãããæ¥åžžæ¥åã倧å¹
ã«ä¿é²ããããã³ããšã³ããããžã§ã¯ãã®çµã¿ç«ãŠããã»ã¹ã詳现ã«åæããŸãã
ãã®èšäºã¯ç©¶æ¥µã®çå®ã§ãããšã¯äž»åŒµããŠããŸããããªããªãã仿¥ã§ã¯å€ãã®ç°ãªãã¢ã»ã³ãã©ãŒãšã¢ã»ã³ããªãŒãžã®ã¢ãããŒããããã誰ããå³ãéžã¶ããã§ãã ãã®ãããã¯ã«é¢ããç§ã®èããå
±æããã¯ãŒã¯ãããŒã瀺ããŸãã
UPDïŒ2015幎3æ13æ¥ïŒïŒããã€ãã®ãã©ã°ã€ã³ãããé¢é£æ§ã®é«ããã©ã°ã€ã³ã«çœ®ãæããCSSSãã¡ã€ã«ãSCSSå
ã«ã€ã³ããŒãããéã®åé¡ã解決ããŸãã
Gulpã³ã¬ã¯ã¿ãŒã䜿çšããŸãã ãããã£ãŠãããŒãjsãã·ã¹ãã ã«ã€ã³ã¹ããŒã«ããå¿
èŠããããŸãã ç¹å®ã®ãã©ãããã©ãŒã ã«ããŒããã€ã³ã¹ããŒã«ããããšã¯èæ
®ããŸããã ããã¯æ°åã§ã°ãŒã°ã«ã§ãã
ããããã質åã«çãã-ãªãGulpãªã®ãïŒ
å€ããå°ãªãã蚱容ã§ããéžæè¢ã®ãã¡ã
Gruntãš
BrunchããããŸãã
ã¢ã»ã³ãã©ãŒã«åå ãå§ããã°ããã®é ãGruntãšGulpã¯ãã§ã«åžå Žã«åºãŠããŸããã æåã®ãã®ã¯ä»¥åã«ç»å Žããããããã倧ããªã³ãã¥ããã£ãšããŸããŸãªãã©ã°ã€ã³ããããŸãã
npmã«ãããšïŒ
Grunt-11171ããã±ãŒãž
Gulp-4371ããã¯
ããããGruntã¯å°ãåé·ã«èŠããŸããã ãããŠãããã€ãã®æ¯èŒèšäºãèªãã åŸããã®ã·ã³ãã«ããšæå¿«ãããGulpã奜ã¿ãŸããã
ãã©ã³ãã¯æ¯èŒçæ°ãããããžã§ã¯ãã§ããããã¹ãŠã®è³åŠäž¡è«ã¯ãã®çµæã§ãã ç§ã¯åœŒãèå³ãæã£ãŠèŠãŠããŸãããç§ã®ä»äºã§ã¯ãŸã 䜿ã£ãŠããŸããã
ç¶è¡ïŒ
ãããžã§ã¯ãçšã®ãã©ã«ããŒïŒããšãã°ããhabrãïŒãäœæããŸãã ã³ã³ãœãŒã«ã§éããã³ãã³ããå®è¡ããŸãã
npm init
ã€ã³ã¹ããŒã©ãŒã®ãã¹ãŠã®è³ªåã§EnterããŒãæŒãã ãã§ãã ä»ã§ã¯åé¡ã§ã¯ãããŸããã
ãã®çµæããããžã§ã¯ãã®ãããã©ã«ããŒã§ã次ã®ãããªpackage.jsonãã¡ã€ã«ãçæããŸãã
{ "name": "habr", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }
ããŒãºã«åãããŠå°ã倿ŽããŸãã
{ "name": "habr", "version": "1.0.0", "description": "", "author": "", "license": "ISC", "dependencies": { "gulp": "^3.8.11" } }
äŸåé¢ä¿ãããã¯ã§ãgulpãå¿
èŠã§ããããšã瀺ãããã¹ãŠã®ãã©ã°ã€ã³ãããã«ç»é²ããŸãã
ãã©ã°ã€ã³
gulp-autoprefixer-ãã³ããŒãã¬ãã£ãã¯ã¹ãCSSããããã£ã«èªåçã«è¿œå ããŸãïŒæ°å¹Žåã¯ããã®ãããªããŒã«ã®ããã«æ®ºããŠããŸããïŒ
gulp-minify-css -CSSã³ãŒãã®å§çž®ã«å¿
èŠ
browser- sync-ãã®ãã©ã°ã€ã³ã䜿çšãããšããã©ãã¯ãžã£ãã¯ãšã©ã€ããªããŒãã䜿çšããŠããŒã«ã«éçºãµãŒããŒãç°¡åã«ãããã€ã§ããŸãããŸããããŒã«ã«ãã¹ããžã®ãã³ãã«ãäœæã§ããŸãã
gulp-imagemin-ç»åã®å§çž®çš
imagemin-pngquant -PNGãæäœããããã®ä»¥åã®ãã©ã°ã€ã³ãžã®è¿œå
gulp-uglify -JSãå§çž®ããŸã
gulp-sass -SCSSã³ãŒããã³ã³ãã€ã«ããŸã
ããªããŒã©ã®ããã§ã¯ãªãç§ã¯ä»äºã§LESSãéåžžã«é·ãé䜿çšããŸããã ãã®ããªããã»ããµã®ã¹ããŒããšåŠç¿ã®ããããã«ã¯éåžžã«æéãåããŸããã ãã¹ããã®ããã«ãœã³ã§ã
å ±åããŸããã ç¹ã«ãã®ã¬ããŒãã§ã¯ãSASSã«ã€ããŠããŸããäžèŸãèšããŸããã§ããã
ããããæéãçµã€ã«ã€ããŠãç§ã¯å¹Žãåããè³¢ããªããŸãã:)ãããŠä»ãç§ã¯ãã®ããªããã»ããµã«å ãããŸããã
SASSã«å¯Ÿããç§ã®äžæºã®åºç€ã¯ãç§ãããããªãã§ãããšããããšã§ããã ãããŠãSASS / SCSSã³ãŒããã³ã³ãã€ã«ããå¿
èŠããã£ããšã-å¿
èŠãªãã³ãã«ã䜿çšããŠãããžã§ã¯ãããã©ãã°ããå¿
èŠããããŸãã-ããã¯æ¬åœã«ç§ãæ··ä¹±ãããŸããã
ããããããã¯ãã¹ãŠ
LibSassã®ãããªãã®ã®åºçŸã«ãã£ãŠå€ãããŸããã ããã¯ãSASSã®C / C ++ã³ã³ãã€ã©ããŒãã§ãã gulp-sassãã©ã°ã€ã³ã¯ããã䜿çšããŸãã ããã§ããã€ãã£ãããŒãç°å¢ã§SASSã䜿çšã§ããããã«ãªããéåžžã«æºè¶³ããŠããŸãã
gulp-sourcemaps -css sourscemapsãçæããŠçæããŸããããã¯ã³ãŒãã®ãããã°ã«åœ¹ç«ã¡ãŸã
gulp-riggerã¯åãªãæ©èœãã©ãŒã§ãã ãã©ã°ã€ã³ã䜿çšãããšãã·ã³ãã«ãªãã¶ã€ã³ã§1ã€ã®ãã¡ã€ã«ãå¥ã®ãã¡ã€ã«ã«ã€ã³ããŒãã§ããŸãã
//= footer.html
ã³ã³ãã€ã«æã®ãã®è¡ã¯ãfooter.htmlãã¡ã€ã«ã®å
容ã«çœ®ãæããããŸã
gulp-watch-ãã¡ã€ã«ã®å€æŽãç£èŠããããã«å¿
èŠã«ãªããŸãã Gulpã«ã¯ãŠã©ãããçµã¿èŸŒãŸããŠããããšã¯ç¥ã£ãŠããŸãããç¹ã«åé¡ããããŸãããç¹ã«ãæ°ããäœæããããã¡ã€ã«ã衚瀺ããããåèµ·åããå¿
èŠããããŸããã ãã®ãã©ã°ã€ã³ã¯åé¡ã解決ããŸããïŒããã¯gulpã®å°æ¥ã®ããŒãžã§ã³ã§ä¿®æ£ãããããšãæã¿ãŸãïŒã
rimraf -rm -rf for node
ãã¹ãŠã®ãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããåºåã§æ¬¡ã®package.jsonãååŸããŸãã
{ "name": "habr", "version": "1.0.0", "description": "", "author": "", "license": "ISC", "dependencies": { "browser-sync": "^2.2.3", "gulp": "^3.8.11", "gulp-autoprefixer": "^2.1.0", "gulp-imagemin": "^2.2.1", "gulp-minify-css": "^1.0.0", "gulp-rigger": "^0.5.8", "gulp-sass": "^1.3.3", "gulp-sourcemaps": "^1.5.0", "gulp-uglify": "^1.1.0", "gulp-watch": "^4.1.1", "imagemin-pngquant": "^4.0.0", "rimraf": "^2.3.1" } }
ããŠã¢ãŒ
Bowerããã±ãŒãžãããŒãžã£ãŒããªããã°ç§ã®ä»äºãæ³åããããšã¯ã§ããŸããã ããã§ãªãå Žåã¯ããããäœã§ããã
ããã§äœãé£ã¹ããããã«ã€ããŠèªãã§
ãã ãã ã
ãããžã§ã¯ãã«è¿œå ããŸãããã ãããè¡ãã«ã¯ãã³ã³ãœãŒã«ã§ã³ãã³ããå®è¡ããŸãã
bower init
ãã¹ãŠã®è³ªåãå
¥åããããšãã§ããŸãã
æåŸã«ããã®bower.jsonãã¡ã€ã«ã®ãããªãã®ãååŸããŸãã
{ "name": "habr", "version": "0.0.0", "authors": [ "Insayt <insait.rostov@ya.ru>" ], "license": "MIT", "ignore": [ "**/.*", "node_modules", "bower_components", "test", "tests" ] }
ãããŠãå¿
èŠãªç¶æ
ã«å€æŽããŸãã
{ "name": "habr", "version": "0.0.0", "authors": [ "Insayt <insait.rostov@ya.ru>" ], "license": "MIT", "ignore": [ "**/.*", "node_modules", "bower_components", "test", "tests" ], "dependencies": { "normalize.css": "*", "jquery": "2.*" } }
äŸåé¢ä¿ãããã¯ã§ã¯ããããžã§ã¯ãã®äŸåé¢ä¿ã瀺ããŸãã ããŠããã¹ãã®ããã ãã«ããŒãã©ã€ãºãšjQueryãè¡ããŸãïŒãããã䜿çšããã«ãããžã§ã¯ãããã€éå§ãããèŠããŠããŸããïŒã
ãããŠãã¡ãããæ¬¡ã®ã³ãã³ãã§ã€ã³ã¹ããŒã«ããŸãïŒ
bower i
ããŠã仿ãè峿·±ãã ãããžã§ã¯ãã®æ§é ãäœæããã³ã¬ã¯ã¿ãŒãæ§æããŸãã
ãããžã§ã¯ãæ§é ïŒ
ããã¯éåžžã«ç©è°ãéžãç¬éã§ãã ãã¡ããããããžã§ã¯ããšéçºè
ã®å¥œã¿ã¯ç°ãªããŸãã
yeoman.ioã® Webãµã€ããèŠãã ãã§ãïŒã¡ãªã¿ã«ãããã¯ããããçš®é¡ã®æ©èœãåãããããžã§ã¯ãçšã®å€æ°ã®æºåããããã¬ãŒã ã¯ãŒã¯ãæäŸããéåžžã«ã¯ãŒã«ãªããŒã«ã§ãã
ãã²ã芧ãã ããã äœãçºæãããæãåçŽãªæ§é ãäœæããŸãã
ãŸãã2ã€ã®ãã©ã«ããŒãå¿
èŠã§ãã 1ã€ïŒsrcïŒã§å®éã«ã³ãŒããèšè¿°ãã2ã€ç®ïŒbuildïŒã§ã³ã¬ã¯ã¿ãŒã宿ãããã¡ã€ã«ãåãåºããŸãã ãããããããžã§ã¯ãã«è¿œå ããŸãã çŸåšã®æ§é ã¯æ¬¡ã®ããã«ãªããŸãã

srcãã©ã«ããŒã«ãå¹³åçãªãããžã§ã¯ãã®å
žåçãªæ§é ãäœæããŸãã js /ããã³style /ãã©ã«ããŒã«ã¡ã€ã³ãã¡ã€ã«ãäœæãããã®ãããªã³ã³ãã³ããå«ãæåã®htmlããŒãžãäœæããŸãããã
index.html <!DOCTYPE html> <html> <head lang="ru"> <meta charset="UTF-8"> <title> </title> </head> <body> <section class="header"> Header </section> <section class="content"> Content </section> <section class="footer"> Footer </section> </body> </html>
srcãã©ã«ããŒæ§é ã¯æ¬¡ã®ããã«ãªããŸãã

ããã§ã¯ãã¹ãŠãç°¡åã§ãã
ãã©ã³ã-ãã©ã³ã
img-åç
js-ã¹ã¯ãªããã ãã®ãã©ã«ããŒã®ã«ãŒãã«ããã®ã¯main.jsãã¡ã€ã«ã®ã¿ã§ãããã¯ã¢ã»ã³ããªã«åœ¹ç«ã¡ãŸãã ãã¹ãŠã®jsãã¡ã€ã«-ããŒã·ã£ã«ãã©ã«ããŒã«é
眮ããå¿
èŠããããŸã
ã¹ã¿ã€ã«-ã¹ã¿ã€ã«ã ãŸããã«ãŒãã«ã¯main.scssã®ã¿ããããpartialsãã©ã«ããŒã«ã¯äœæ¥ãã¡ã€ã«ããããŸãã
ãã³ãã¬ãŒã-ããã§ã¯ãç¹°ãè¿ãã®HTMLã³ãŒããä¿åããŸã
ã¿ã€ãã»ãããããã¹ãŠã®htmlããŒãžã¯ãsrc /ã®ã«ãŒãã«ãããŸãã
æåã®jsãã¡ã€ã«ãšscssãã¡ã€ã«ãããŒã·ã£ã«ã«è¿œå ããæåŸã«-ãããžã§ã¯ãã®ã«ãŒãã«ç§»åããŠãgulpfile.jsãã¡ã€ã«ãäœæããŸãã ãããžã§ã¯ããã©ã«ããŒå
šäœã¯æ¬¡ã®ããã«ãªããŸãã

ããã§ã³ã¬ã¯ã¿ãŒãèšå®ããæºåããã¹ãŠæŽããŸããã®ã§ãããã¯ããŸãããïŒ
Gulpfile.js
ãã¹ãŠã®éæ³ã¯ãã®ãã¡ã€ã«ã«å«ãŸããŸãã ãŸãããã¹ãŠã®ãã©ã°ã€ã³ãã€ã³ããŒãããŠãgulpèªäœãã€ã³ããŒãããŸã
gulpfile.js 'use strict'; var gulp = require('gulp'), watch = require('gulp-watch'), prefixer = require('gulp-autoprefixer'), uglify = require('gulp-uglify'), sass = require('gulp-sass'), sourcemaps = require('gulp-sourcemaps'), rigger = require('gulp-rigger'), cssmin = require('gulp-minify-css'), imagemin = require('gulp-imagemin'), pngquant = require('imagemin-pngquant'), rimraf = require('rimraf'), browserSync = require("browser-sync"), reload = browserSync.reload;
ãã¡ãããããããå¿
èŠã¯ãããŸããã
gulp-load-pluginsãã©ã°ã€ã³ã䜿çšãããšãrequireãããã®ããŒãã«ããã¹ãŠäœæããå¿
èŠããªããªããŸãã ããããäœãã©ãã«æ¥ç¶ãããŠããããæç¢ºã«ç¢ºèªããå¿
èŠã«å¿ããŠãªãã«ã§ããŸãã ãã®ããã«ãç§ã¯æãªããã®æ¹æ³ã§æžããŸãã
ãŸããå¿
èŠãªãã¹ãŠã®ãã¹ãæžã蟌ãjsãªããžã§ã¯ããäœæããŸããããã«ãããå¿
èŠã«å¿ããŠ1ãæã§ç°¡åã«ç·šéã§ããŸãã
var path = { build: {
éçºãµãŒããŒã®èšå®ã§å€æ°ãäœæããŸãã
var config = { server: { baseDir: "./build" }, tunnel: true, host: 'localhost', port: 9000, logPrefix: "Frontend_Devil" };
HTMLããŸãšãã
HTMLã¢ã»ã³ããªã®ã¿ã¹ã¯ãäœæããŸãããã
gulp.task('html:build', function () { gulp.src(path.src.html)
ãªã¬ãŒã¯ããã®èšèšã䜿çšããŠãã¡ã€ã«ãã€ã³ããŒãã§ãããã©ã°ã€ã³ã§ãã
//= template/footer.html
å®éã«äœ¿çšããŠã¿ãŸãããïŒ
src / template / folderã«ã次ã®å
容ã®header.htmlããã³footer.htmlãã¡ã€ã«ãäœæããŸã
header.html <section class="header"> Header </section>
footer.html <section class="header"> Footer </section>
index.htmlãã¡ã€ã«ã次ã®ããã«å€æŽããŸãã
<!DOCTYPE html> <html> <head lang="ru"> <meta charset="UTF-8"> <title> </title> </head> <body> //= template/header.html <section class="content"> Content </section> //= template/footer.html </body> </html>
ã³ã³ãœãŒã«ã«ç§»åããæ¬¡ã®ã³ãã³ãã䜿çšããŠã¿ã¹ã¯ãå®è¡ããŸãã
gulp html:build
åäœããåŸãbuildãã©ã«ããŒã«ç§»åããŠãããã«ããindex.htmlãã¡ã€ã«ã確èªããŸãã
<!DOCTYPE html> <html> <head lang="ru"> <meta charset="UTF-8"> <title> </title> </head> <body> <section class="header"> Header </section> <section class="content"> Content </section> <section class="footer"> Footer </section> </body> </html>
ãããïŒ
ã¬ã€ã¢ãŠãããããã¹ãŠã®ããŒãžã«ç®ãéãããããã®ããŒãžã§ç¹°ãè¿ãããäžéšã«å€æŽãå ããã®ã¯ã©ãã»ã©å€ãã®äžäŸ¿ããèŠããŠããŸããã çŸåšãããã¯1ãæã§äŸ¿å©ã«è¡ãããŠããŸãã
JavaScriptããã«ããã
ã¹ã¯ãªããã¢ã»ã³ããªã¿ã¹ã¯ã¯æ¬¡ã®ããã«ãªããŸãã
gulp.task('js:build', function () { gulp.src(path.src.js)
main.jsãã¡ã€ã«ãèŠããŠããŸããïŒ
ããã§ã®å
šäœçãªã¢ã€ãã¢ã¯ããªã¬ãŒã䜿çšããŠãå¿
èŠãªãã¹ãŠã®jsãã¡ã€ã«ãå¿
èŠãªé åºã§å«ããããšã§ãã æ¥ç¶é åºãå¶åŸ¡ããããã§ã-ãã¹ãŠã®* .jsãã¡ã€ã«ãèŠã€ããŠããããæ¥çããããã«gulpã«äŸé Œããã®ã§ã¯ãªãããã®æ¹æ³ã§è¡ããŸãã
å€ãã®å Žåããšã©ãŒã®å Žæãæ€çŽ¢ãããšããåé¡ã®å Žæãç¹å®ããããã«ãã¢ã»ã³ããªããããã€ãã®ãã¡ã€ã«ãé çªã«ãªãã«ããŸãã ãã¹ãŠã®.jsãäžæ³šæã«æ¥çãããšããããã°ãè€éã«ãªããŸãã
main.jsã«å
¥åããŸãã
ããã¯ãŸãã«ç§ãæŠéãããžã§ã¯ãã§è¡ãããšã§ãã ãã®ãã¡ã€ã«ã®äžçªäžã¯åžžã«äŸåé¢ä¿ã®æ¥ç¶ã§ãããèªåã®ã¹ã¯ãªããã®æ¥ç¶ã®äžã«ãããŸãã
ã¡ãªã¿ã«ãbowerããã±ãŒãžã¯
gulp-bowerãªã©ã®ãã©ã°ã€ã³ãä»ããŠæ¥ç¶ã§ããŸãã ããããç¹°ãè¿ããŸãããäœããã©ãã§ãã©ã®ããã«æ¥ç¶ããããç¬ç«ããŠæ±ºå®ãããã®ã§ãç§ã¯ãããè¡ããŸããã
次ã®ã³ãã³ãã䜿çšããŠãã³ã³ãœãŒã«ããã¿ã¹ã¯ãèµ·åããã ãã§ãã
gulp js:build
ãããŠãbuild / jsãã©ã«ããŒã«ãã³ã³ãã€ã«ããã³å§çž®ããããã¡ã€ã«ã衚瀺ãããŸãã
ã¹ã¿ã€ã«ãåéããŸã
SCSSãæ§ç¯ããã¿ã¹ã¯ãäœæããŸãããã
gulp.task('style:build', function () { gulp.src(path.src.style)
ããã§ã¯ãã¹ãŠãç°¡åã§ãããèªåä¿®æ£ã®èšå®ã«èå³ããããããããŸããã ããã©ã«ãã§ã¯ããã©ãŠã¶ã®æåŸã®2ã€ã®ããŒãžã§ã³ã«å¿
èŠãªãã¬ãã£ãã¯ã¹ãæžã蟌ã¿ãŸãã ç§ã®å Žåãããã§ååã§ãããä»ã®èšå®ãå¿
èŠãªå Žåã¯ã
ããã§èŠã€ããããšãã§ããŸãã
ã¹ã¿ã€ã«ã«ã€ããŠã¯ãjsãšåãã§ããããªã¬ãŒã®ä»£ããã«ãSCSSã«çµã¿èŸŒãŸããã€ã³ããŒãã䜿çšããŸãã
UPDïŒ2015幎3æ13æ¥ïŒïŒäžéšã®äººã
ã¯ãCSSãã¡ã€ã«ãã€ã³ã©ã€ã³ã§ã€ã³ããŒãããéã«åé¡ãæ±ããŠããŸãã 倿ããããã«ãgulp-sassã¯ãããè¡ãæ¹æ³ãç¥ãããåºåã¯åçŽãªCSSã€ã³ããŒããæäŸããŸãã ããããgulp-minify-cssãã©ã°ã€ã³ã¯ãã®åé¡ã解決ããCSSã€ã³ããŒãããã¡ã€ã«ã®ã³ã³ãã³ãã«çœ®ãæããŸãã
main.scssã¯æ¬¡ã®ããã«ãªããŸãã
@import "../../bower_components/normalize.css/normalize.css"; @import "partials/app";
ããã«ãããã¹ã¿ã€ã«ã®æ¥ç¶æ¹æ³ãç°¡åã«å¶åŸ¡ã§ããŸãã
å®è¡ããŠã¿ã¹ã¯ã確èªããŸããã
gulp style:build
åçãéãã
åçã®ã¿ã¹ã¯ã¯æ¬¡ã®ããã«ãªããŸãã
gulp.task('image:build', function () { gulp.src(path.src.img)
ã€ã³ã¿ãŒã¬ãŒã¹ãé€ããããã©ã«ãã®imageminèšå®ã䜿çšããŸãã ãã®ãã©ã°ã€ã³ã®APIã®è©³çްã«ã€ããŠã¯ã
ãã¡ããã芧ãã ãã ã
ããŠãsrc / imgã«ç»åãå
¥ããŠã³ãã³ããå®è¡ãããšïŒ
gulp image:build
æé©åãããã€ã¡ãŒãžããã«ãã§è¡šç€ºãããŸãã ãŸããgulpã¯ã³ã³ãœãŒã«ã«ããµã€ãã®ãŠãŒã¶ãŒçšã«ã©ãã ãã®ã¹ããŒã¹ãç¯çŽãããã芪åã«æžã蟌ã¿ãŸãã
ãã©ã³ã
éåžžããã©ã³ããæäœããå¿
èŠã¯ãããŸãããããsrc /ã§äœæ¥ããbuild /ã§çµã¿ç«ãŠãããšãããã©ãã€ã ãç Žå£ããªãããã«ãsrc / fontsãããã¡ã€ã«ãã³ããŒããbuild / fontsã«è²Œãä»ããŸãã ã¿ã¹ã¯ã¯æ¬¡ã®ãšããã§ãã
gulp.task('fonts:build', function() { gulp.src(path.src.fonts) .pipe(gulp.dest(path.build.fonts)) });
ããã§ããbuildããšããã¿ã¹ã¯ãå®çŸ©ããŸããããããã¯ãããªããšç§ãããã«ã¢ããããŒããããã¹ãŠãå®è¡ããŸãã
gulp.task('build', [ 'html:build', 'js:build', 'style:build', 'fonts:build', 'image:build' ]);
ãã¡ã€ã«ã®å€æŽ
åžžã«ã³ã³ãœãŒã«ã«ç»ããªãããã«ããã¡ã€ã«ã倿Žãããã³ã«å¿
èŠãªã¿ã¹ã¯ãå®è¡ããããã«gulpã«äŸé ŒããŸãããã ãããè¡ãããã«ã圌ã¯ãã®ãããªã¿ã¹ã¯ãæžããŸãïŒ
gulp.task('watch', function(){ watch([path.watch.html], function(event, cb) { gulp.start('html:build'); }); watch([path.watch.style], function(event, cb) { gulp.start('style:build'); }); watch([path.watch.js], function(event, cb) { gulp.start('js:build'); }); watch([path.watch.img], function(event, cb) { gulp.start('image:build'); }); watch([path.watch.fonts], function(event, cb) { gulp.start('fonts:build'); }); });
çè§£ããã°åé¡ã¯ãªãã¯ãã§ãã ãã¹å€æ°ã§å®çŸ©ããããã¹ã«æ²¿ã£ãŠç§»åãããã¡ã€ã«ã倿Žããããšãã«åŒã³åºããã颿°ã§ãå¿
èŠãªã¿ã¹ã¯ãå®è¡ããããã«æ±ããŸãã
ã³ã³ãœãŒã«ã§å®è¡ããŠã¿ãŠãã ããïŒ
gulp watch
ãããŠãç°ãªããã¡ã€ã«ã亀æããŸãã
ãŸããã¯ãŒã«ãããªãã§ããïŒ
WebãµãŒããŒ
livereloadã®å¥è·¡ã楜ããã«ã¯ãèªåçšã®ããŒã«ã«WebãµãŒããŒãäœæããå¿
èŠããããŸãã ãããè¡ãã«ã¯ã次ã®ç°¡åãªã¿ã¹ã¯ãèšè¿°ããŸãã
gulp.task('webserver', function () { browserSync(config); });
ã³ã¡ã³ãããããšãããããŸããã configãªããžã§ã¯ãã§å®çŸ©ããèšå®ã§livereloadãµãŒããŒãèµ·åããã ãã§ãã ããã«ãgulpã¯ãããžã§ã¯ãããã©ãŠã¶ãŒã§äžå¯§ã«éããã³ã³ãœãŒã«ã§ããŒã«ã«ãµãŒããŒãšãã³ãã«ãžã®ãªã³ã¯ãæžã蟌ã¿ãŸãããã®ãªã³ã¯ã¯ããã¢ã®ããã«ã客æ§ã«ããããã§ããŸãã
ã¯ãªãŒãã³ã°
ç»åã远å ããå ŽåãimageïŒbuildã¿ã¹ã¯ãå®è¡ããŠããç»åãåé€ããŸã-ç»åã¯buildãã©ã«ããŒã«æ®ããŸãã ãã®ããã宿çã«ã¯ãªãŒãã³ã°ãããšäŸ¿å©ã§ãã ãã®ããã®ç°¡åãªã¿ã¹ã¯ãäœæããŸãããã
gulp.task('clean', function (cb) { rimraf(path.clean, cb); });
ã³ãã³ããå®è¡ãããš
gulp clean
ãã«ããã©ã«ããŒã®ã¿ãåé€ãããŸãã
æçµåé³
æåŸã«ãã¢ã»ã³ããªå
šäœãå®è¡ããããã©ã«ãã¿ã¹ã¯ã決å®ããŸãã
gulp.task('default', ['build', 'webserver', 'watch']);
æåŸã«ãgulpfile.jsã¯æ¬¡ã®
ããã«ãªããŸãã
ã³ã³ãœãŒã«ã§å®è¡ããŸã
gulp
ãããŠåºæ¥äžããã ãããžã§ã¯ãã®æºåãæŽããããªããåŸ
ã£ãŠããŸãã
çµè«ã«ããã€ãã®èšè
ãã®èšäºã¯ãããã³ããšã³ããããžã§ã¯ãã®ã¢ã»ã³ãã«ã®åŸ®åŠããããäžåºŠå·æ°ãããã®çµéšãæ°ããéçºè
ã«ç°¡åã«ç§»è»¢ããæ¹æ³ãšããŠèæ¡ãããŸããã ãããžã§ã¯ãã§ãã®ãããªã¢ã»ã³ããªãªãã·ã§ã³ã䜿çšããå¿
èŠã¯ãããŸããã ã»ãšãã©ãã¹ãŠã®ããŒãºã«
åã£ããžã§ãã¬ãŒã¿ãŒãèŠã€ãã
yeoman.ioããããŸãã
ãã®ã³ã¬ã¯ã¿ãŒãäœæããçç±ã¯3ã€ãããŸãã
-HTMLã³ãŒãã§ãªã¬ãŒã䜿çšããã
-åºäŒã£ãã»ãšãã©ãã¹ãŠã®ã¢ã»ã³ããªã§ã¯ãã¢ã»ã³ããªã®äžéçµæãèšé²ããããã«äžæãã©ã«ããŒïŒéåžžã¯.tmp /ïŒã䜿çšãããŸãã ç§ã¯ãã®ã¢ãããŒãã奜ãã§ã¯ãªãã®ã§ãäžæãã©ã«ããŒãåé€ãããã£ãã®ã§ãã
ããããŠãããããã¹ãŠãç§ã®ç®±ããåºãããšãé¡ã£ãŠããŸããã
ã³ã¬ã¯ã¿ãŒã®äœæ¥ããŒãžã§ã³ã
githubããããŠã³ããŒãã§ããŸãã
ãã®èšäºãã圹ã«ç«ãŠã°å¹žãã§ãã
PSãã¹ãŠã®ãšã©ãŒãçæãããã³åŠšå®³ã«ã€ããŠ-å人çã«æžããŠãã ããã