#gulp安裝
- 安裝nodejs
- 全局安裝gulp
打開命令行 輸入
npm install gulp -g
在工作目錄下 按住shift + 右鍵 在此處打開命令行莊口
輸入
npm install gulp --save -dev
創建一個gulpfile.js
然后就是在gulpfile.js中定義自己的任務
* * * * *
#gulp 使用
[javascript](242598)##1、gulp.task 定義一個任務
gulp.task(name[, deps], fn)
1.2、name: 類型(必填):String 指定任務的名稱(不應該有空格);
1.3、deps: 類型(可選):StringArray,該任務依賴的任務(注意:被依賴的任務需要返回當前任務的事件流,請參看下面示例);
##2、gulp.src 找到指定路徑的文件
gulp.src(globs[, options])
2.1、說明:src方法是指定需要處理的源文件的路徑,gulp借鑒了Unix操作系統的管道(pipe)思想,前一級的輸出,直接變成后一級的輸入,gulp.src返回當前文件流至可用插件;
2.2、globs: 需要處理的源文件匹配符路徑。類型(必填):String or StringArray;
通配符路徑匹配示例:
“src/a.js”:指定具體文件;
“*”:匹配所有文件 例:src/*.js(包含src下的所有js文件);
“**”:匹配0個或多個子文件夾 例:src/**/*.js(包含src的0個或多個子文件夾下的js文件);
“{}”:匹配多個屬性 例:src/{a,b}.js(包含a.js和b.js文件) src/*.{jpg,png,gif}(src下的所有jpg/png/gif文件);
“!”:排除文件 例:!src/a.js(不包含src下的a.js文件);
2.3、options: 類型(可選):Object,有3個屬性buffer、read、base;
options.buffer: 類型:Boolean 默認:true 設置為false,將返回file.content的流并且不緩沖文件,處理大文件時非常有用;
options.read: 類型:Boolean 默認:true 設置false,將不執行讀取文件操作,返回null;
options.base: 類型:String 設置輸出路徑以某個路徑的某個組成部分為基礎向后拼接,具體看下面示例:
##3、gulp.dest dest 方法是指定處理完后文件輸出的路徑
gulp.dest(path[, options])
3.1、path: 類型(必填):String or Function 指定文件輸出路徑,或者定義函數返回文件輸出路徑亦可;
3.2、options: 類型(可選):Object,有2個屬性cwd、mode;
options.cwd: 類型:String 默認:process.cwd():前腳本的工作目錄的路徑 當文件輸出路徑為相對路徑將會用到;
options.mode: 類型:String 默認:0777 指定被創建文件夾的權限;
##4、gulp.watch watch方法是用于監聽文件變化,文件一修改就會執行指定的任務;
gulp.watch(glob [, opts], tasks) or gulp.watch(glob [, opts, cb])
4.1、glob: 需要處理的源文件匹配符路徑。類型(必填):String or StringArray;
4.2、opts: 類型(可選):Object 具體參看https://github.com/shama/gaze;
4.3、tasks: 類型(必填):StringArray 需要執行的任務的名稱數組;
4.4、cb(event): 類型(可選):Function 每個文件變化執行的回調函數;
#使用總結
##在使用編寫我們的自動化程序時,首先需要根據自己的需求下載安裝各種符合需求的plugin,然后在編寫任務模塊之前一一引用;
var gulp = require('gulp');
##然后,定義任務
var task1 = gulp.task('task1',function(){
// task code ~~
})
##在編寫任務代碼時,
1 src 找到需要進行任務的文件,并copy;
2 pipe 指明需要做什么任務 ;
3 dest 指明 最后的文件放到什么位置 ;
4 witch 監聽文件 , 當文件發生變化進行某些任務
放栗子
var gulp = require('gulp');
// 改名的插件
var rename = require('gulp-rename');
var task1 = gulp.task('task1',function(){
gulp.src('./*.css')
.pipe(rename({ extname: '.min.css' }))
.pipe(gulp.dest('./'));
});
gulp.watch('./*.css',['task1']);
#常用插件:
##1. SASS編譯 優化 gulp-sass gulp-cssnano
##2. JS合并 壓縮 混淆 gulp-concat gulp-uglify
## 3. html壓縮 gulp-htmlmin
## 4. css自動兼容 gulp-autoprefixer
##5. 瀏覽器自動刷新,靜態文件服務器 browser-sync