gulp、grunt前端自動化工具,只有用過才知道多麼重要。css
它們問世這麼久了?你真的用過嗎?前端
寫個簡單的less、watch任務的demo分享————node
1.準備:git
安裝全局node、npm,這個教程不少不做詳細介紹;github
安裝全局gulpnpm
npm install -g gulp
新建getstart文件夾,文件夾中建立package.json,記得加上{},保存json
2.命令提示符下,到getstart文件夾裏,依次安裝node模塊:gulp
npm install --save-dev gulp
npm install --save-dev gulp-less
npm install --save-dev gulp-watch
npm install --save-dev require-dirapp
3. 根目錄新建gulpfile.js 、 gulp文件夾;less
gulp文件夾裏再新建一個tasks文件夾和config.js文件;
tasks文件夾裏建立default.js, less.js, watch.js。
tasks文件裏存放對應的任務、config.js配置任務的相關配置
(1)gulpfile.js (gulp入口文件),最基本的寫法是把全部任務配置在此文件裏,咱們這裏作一層分離,用require-dir引入gulp/tasks裏的任務
var requireDir = require('require-dir'); requireDir('./gulp/tasks', { recurse: true});
(2)config配置:
/* gulp命令會由gulpfile.js運行,因此src和build文件夾路徑以下(根目錄下) */
var src = './src';
var dest = './build';
module.exports = { less: { all: src + "/less/**/*.less", //全部less src: src + "/less/*.less", //須要編譯的less dest: dest + "/css", //輸出目錄 settings: { //編譯less過程須要的配置,能夠爲空 } } }
(3)編寫default,默認任務,這裏默認任務添加了less和watch任務:
var gulp = require('gulp'); gulp.task('default', ['less','watch']);
(4)編寫less任務,這裏引入了config.js配置文件,pipe()方法會依次執行,以下首先獲取less源文件、而後編譯、最後輸出。
var gulp = require('gulp'); var less = require('gulp-less'); var config = require('../config').less; gulp.task('less', function(){ return gulp.src(config.src) //less源文件 .pipe(less(config.settings)) //執行編譯 .pipe(gulp.dest(config.dest)) //輸出目錄 });
(5)編寫watch任務,
var gulp = require('gulp'); var watch = require('gulp-watch'); var config = require('../config'); gulp.task('watch', function(){ watch(config.less.all, function(){ //監聽全部less gulp.start('less'); //出現修改、立馬執行less任務 }) })
4.根目錄建立src->less文件夾,新建須要的less文件 以下:
根據config配置,會編譯less文件夾裏的less,以下的main.less:
@import "app/a.less";
@import "app/b.less";
根據config配置,會編譯監聽less裏的全部文件,一旦有變化,便會執行編譯。
最終輸出到build->css裏
試試修改a.less,便會自動編譯了。
OK,這個demo就作完了,很簡單吧!
這是個很是簡單的任務,固然咱們能夠用gulp作不少事情,好比壓縮圖片、壓縮代碼、合併、iconFont,配置不一樣的生產環境須要的任務:deploy、staging、localhost等。
真正用好了,能提高很是大的開發和維護效率。
這個demo只是簡單的入門,真正學習gulp,仍是要到官網上去學習。