很久沒有更新博文了。
經過了一次年前吐血的趕項目,終於在年后回血了。趁着有空,新學到了一個前端自動化構建工具-gulp。
現在我們通過這3個問題來學習一下;
$ npm install --global gulp
$ npm install --save-dev gulp
$ touch gulpfile.js
var gulp = require('gulp');
這行命令告知node,先局部(node_modules)查找gulp包,找不到再去全局查找。找到之后就會賦值給gulp變量,然后我們就可以使用它了。
--如何配置gulp任務:
gulp.task('task-name',funcion(){
//Stuff here
});
這是gulp設置task的大概模版,'task-name'是你給任務起的名字,稍后在命令行執行gulp task-name,將任務執行。
寫個hello world,是這樣的
然后在命令行執行
$ gulp hello
運行結果:

好的,已經成功運行出來了!大概任務就是這樣子,現在我們來寫一個正式的gulp任務。
例如,編譯sass,任務代碼為:

如圖:.src 是文件的源路徑;.pipe是任務運行的管道;.dest是任務結束之后的輸出路徑。
同時sass文件內容為,下面那個分數沒有被計算出來:

好的,代碼寫完了,在命令行執行命令 $ gulp sass,如圖:

編譯后,你在css輸出的路徑那里會看到生成了一個同名的.css文件,內容就是sass編譯完的結果為:

gulp還有很多其它插件,例如:壓縮,合並,加vendor前綴(css3對各個瀏覽器兼容的前綴)等等功能,都跟以上做法類似。
No.1、run-sequence
Links: https://www.npmjs.com/package/run-sequence
作用:讓gulp任務,可以相互獨立,解除任務間的依賴,增強task復用
No.2、browser-sync
Links: http://www.browsersync.io/
作用:靜態文件服務器,同時也支持瀏覽器自動刷新
No.3、del
Links:https://www.npmjs.com/package/del
作用:刪除文件/文件夾
No.4、gulp-coffee
Links: https://github.com/wearefractal/gulp-coffee
作用:編譯coffee代碼為Js代碼,使用coffeescript必備
No.5、coffee-script
Links: https://www.npmjs.com/package/coffee-script
作用:gulpfile默認采用js后綴,如果要使用gulpfile.coffee來編寫,那么需要此模塊
No.6、gulp-nodemon
Links: https://www.npmjs.com/package/gulp-nodemon
作用:自動啟動/重啟你的node程序,開發node服務端程序必備
No.7、yargs
Links: https://www.npmjs.com/package/yargs
作用:用於獲取啟動參數,針對不同參數,切換任務執行過程時需要
No.8、gulp-util
Links: https://www.npmjs.com/package/gulp-util
作用:gulp常用的工具庫
No.9、gulp-uglify
Links: https://www.npmjs.com/package/gulp-uglify
作用:通過UglifyJS來壓縮JS文件
No.9、gulp-concat
Links: https://www.npmjs.com/package/gulp-concat
作用:合並JS
No.10、gulp-sourcemaps
Links: https://www.npmjs.com/package/gulp-sourcemaps
作用:處理JS時,生成SourceMap
No.11、gulp-less
Links:https://www.npmjs.com/package/gulp-less
作用:將less預處理為css
No.12、gulp-sass
Links:https://www.npmjs.com/package/gulp-sass
作用:將sass預處理為css
No.13、gulp-autoprefixer
Links:https://www.npmjs.com/package/gulp-autoprefixer
作用:使用Autoprefixer來補全瀏覽器兼容的css。
No.14、gulp-minify-css
Links:https://www.npmjs.com/package/gulp-minify-css
作用:壓縮css。
No.15、connect-history-api-fallback
Links:https://www.npmjs.com/package/connect-history-api-fallback
作用:開發angular應用必須,用於支持HTML5 history API.
