關于gulp的使用心得

(最近一直搞angularjs.項目里非要用2個包管理器npm和bower,2個任務運行器webpage、gulp.我想BB。)

gulp是什么?

? ? ? ?gulp是基于Nodejs的自動任務運行器, 她能自動化地完成 javascript/coffee/sass/less/html/image/css 等文件的的測試、檢查、合并、壓縮、格式化、瀏覽器自動刷新、部署文件生成,并監聽文件在改動后重復指定的這些步驟。在實現上,她借鑒了Unix操作系統的管道(pipe)思想,前一級的輸出,直接變成后一級的輸入,使得在操作上非常簡單。通過本文,我們將學習如何使用Gulp來改變開發流程,從而使開發更加快速高效。

? ? ? ?注:gulp 和 grunt 非常類似,但相比于 grunt 的頻繁 IO 操作,gulp 的流操作,能更快地更便捷地完成構建工作。

gulp常用地址:

gulp官方網址:http://gulpjs.com

gulp插件地址:http://gulpjs.com/plugins

gulp 官方API:https://github.com/gulpjs/gulp/blob/master/docs/API.md

gulp 中文API:http://www.ydcss.com/archives/424

廢話不多說,開干。。。

首先需要安裝node.node自帶npm管理包(node安裝過程這里不詳細講。百度很多)

? ? ?推薦使用淘寶的cnpm鏡像,因為npm安裝插件是從國外服務器下載,受網絡影響大,可能出現異常,如果npm的服務器在中國就好了。淘寶cnpm官方網址

1.全局安裝gulp

? ? 全局命令提示符執行?cnpm install gulp -g

查看是否安裝成功 gulp -v

好,gulp的環境已經搞定了,接下來就是使用gulp,

2.gulp的實戰

創建app文件夾。在文件夾里添加package.json文件(package.json是node的配置文件)

package.json的代碼如下:

{

? ? "name": "test", ?

? ? "version": "1.0.0", ?

? ? "description": "test gulp", ?

? ? "homepage": "", ?

? ? "author": { ? ?

? ? ? ?"name": "lucky",

? ? ? ?"email": "*****@qq.com"

? ? },

? ? "license": "ISC", ? ?

? ? "devDependencies": { ? ?

? ? "gulp": "^3.8.11",

? ? "gulp-sass": "^2.3.2"

? ? }

}

同時創建 src 文件夾 和 dist 文件夾

接下來下載依賴包。在項目目錄下使用命令提示符執行 cnpm install

(注:package.json的注釋需要全部刪除。否則會報錯!!!)

成功之后,會多了對應的依賴文件了,說明成功。如圖

好了,在根目錄下創建gulpfile.js文件

? ? ?說明:gulpfile.js是gulp項目的配置文件,是位于項目根目錄的普通js文件(其實將gulpfile.js放入其他文件夾下亦可)。

gulpfilejs 的代碼如下:

//導入工具包 require('node_modules里對應模塊')

var gulp = require('gulp'), //本地安裝gulp所用到的地方

sass = require('gulp-sass');

//定義一個sass任務(自定義任務名稱)

gulp.task('sass', function () {

? ? ?gulp.src('src/sass/index.scss') //該任務針對的文件

? ? ? .pipe(sass()) //該任務調用的模塊

? ? ? .pipe(gulp.dest('dist/css')); //將會在src/css下生成index.css

});

gulp.task('default',['sass']); //定義默認任務

接著,在src里面創建css文件,在src里面創建sass文件夾,并在sass文件夾中創建index.scss;

index.scss代碼如下:

//sass style,如果不會sass語法,可百度

$primaryColor: #333;

$linkColor: #333;

body { ?

? ? ?color: $primaryColor;?

}

a{

? ? ?color:nth($linkColor,1);

? ? ?&:hover{

? ? ? ? ? color:nth($linkColor,2);

? ? ?}

}

接下來通過gulp 編譯sass文件.

運行命令行 gulp sass (sass 是在gulpfilejs自定義任務名稱)

查看dist的css文件下,就會通過gulp 輸出的css文件了。

如果我們每次都修改sass文件,我們每次都要去編輯命令?

其實我們可以利用gulp 的監聽方法,只要文件有修改就自動編譯。

接下來我們修改gulpfilejs文件,

gulpfilejs代碼:

//導入工具包 require('node_modules里對應模塊')

var gulp = require('gulp'), //本地安裝gulp所用到的地方

sass = require('gulp-sass');

//定義一個sass任務(自定義任務名稱)

gulp.task('sass', function () {

? ? ?gulp.src('src/sass/index.scss') //該任務針對的文件

? ? ? .pipe(sass()) //該任務調用的模塊

? ? ? .pipe(gulp.dest('dist/css')); //將會在src/css下生成index.css

});

gulp.task('default',['sass']); //定義默認任務

//新增的代碼。watch函數

//監聽任務,src/sass目錄下的所有sass文件

gulp.task('watch', ['sass'], function () {

? ? ?gulp.watch('src/sass/*.scss', ['sass']);

});

運行命令行 gulp watch

現在如果修改sass文件的話,gulp就會監聽,就會自動幫你編譯css文件了。

好了,gulp的最基本的教程就結束了,gulp還有很多的插件,我就不一一實現了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在現在的前端開發中,前后端分離、模塊化開發、版本控制、文件合并與壓縮、mock數據等等一些原本后端的思想開始...
    Charlot閱讀 5,478評論 1 32
  • 前言 本文默認你已經安裝好node環境,并且熟悉node命令,和window cd命令。 gulp簡介 基于nod...
    9I閱讀 1,992評論 4 50
  • 安裝Gulp首先需要安裝Node.js,并在控制臺輸入$ npm install gulp -gMac端需要寫成$...
    LaBaby_閱讀 938評論 0 1
  • 參照Gulp for Beginners來學習Gulp基本內容。以下為學習記錄筆記。 安裝Gulp 首先需要安裝N...
    JenniferYe閱讀 2,558評論 1 17
  • gulpjs是一個前端構建工具,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數,API也非常簡單,學...
    井皮皮閱讀 1,321評論 0 10