好久沒有更新博文了。javascript
通過了一次年前吐血的趕項目,終於在年後回血了。趁着有空,新學到了一個前端自動化構建工具-gulp。css
如今咱們經過這3個問題來學習一下;html
$ npm install --global gulp
$ npm install --save-dev gulp
$ touch gulpfile.js
var gulp = require('gulp');
這行命令告知node,先局部(node_modules)查找gulp包,找不到再去全局查找。找到以後就會賦值給gulp變量,而後咱們就可使用它了。前端
--如何配置gulp任務:java
gulp.task('task-name',funcion(){ //Stuff here });
這是gulp設置task的大概模版,'task-name'是你給任務起的名字,稍後在命令行執行gulp task-name,將任務執行。node
寫個hello world,是這樣的css3
而後在命令行執行git
$ gulp hello
運行結果:github
好的,已經成功運行出來了!大概任務就是這樣子,如今咱們來寫一個正式的gulp任務。npm
例如,編譯sass,任務代碼爲:
如圖:.src 是文件的源路徑;.pipe是任務運行的管道;.dest是任務結束以後的輸出路徑。
同時sass文件內容爲,下面那個分數沒有被計算出來:
好的,代碼寫完了,在命令行執行命令 $ gulp sass,如圖:
編譯後,你在css輸出的路徑那裏會看到生成了一個同名的.css文件,內容就是sass編譯完的結果爲:
gulp還有不少其它插件,例如:壓縮,合併,加vendor前綴(css3對各個瀏覽器兼容的前綴)等等功能,都跟以上作法相似。
Links: https://www.npmjs.com/package/run-sequence
做用:讓gulp任務,能夠相互獨立,解除任務間的依賴,加強task複用
Links: http://www.browsersync.io/
做用:靜態文件服務器,同時也支持瀏覽器自動刷新
Links:https://www.npmjs.com/package/del
做用:刪除文件/文件夾
Links: https://github.com/wearefractal/gulp-coffee
做用:編譯coffee代碼爲Js代碼,使用coffeescript必備
Links: https://www.npmjs.com/package/coffee-script
做用:gulpfile默認採用js後綴,若是要使用gulpfile.coffee來編寫,那麼須要此模塊
Links: https://www.npmjs.com/package/gulp-nodemon
做用:自動啓動/重啓你的node程序,開發node服務端程序必備
Links: https://www.npmjs.com/package/yargs
做用:用於獲取啓動參數,針對不一樣參數,切換任務執行過程時須要
Links: https://www.npmjs.com/package/gulp-util
做用:gulp經常使用的工具庫
Links: https://www.npmjs.com/package/gulp-uglify
做用:經過UglifyJS來壓縮JS文件
Links: https://www.npmjs.com/package/gulp-concat
做用:合併JS
Links: https://www.npmjs.com/package/gulp-sourcemaps
做用:處理JS時,生成SourceMap
Links:https://www.npmjs.com/package/gulp-less
做用:將less預處理爲css
Links:https://www.npmjs.com/package/gulp-sass
做用:將sass預處理爲css
No.1三、gulp-autoprefixer
Links:https://www.npmjs.com/package/gulp-autoprefixer
做用:使用Autoprefixer來補全瀏覽器兼容的css。
Links:https://www.npmjs.com/package/gulp-minify-css
做用:壓縮css。
Links:https://www.npmjs.com/package/connect-history-api-fallback
做用:開發angular應用必須,用於支持HTML5 history API.