要使用gulp要保證你的電腦上要有node環境html
官方建議你這麼安裝它node
//全局安裝gulp命令行
$ npm install gulp-cli -g
//gulp4.0
$ npm install gulp@next -D
//gulp3.9.1
$ npm install gulp -D
//建立gulpfile.js文件
$ touch gulpfile.js
$ gulp --help
複製代碼
gulp4在gulp3的基礎上新增了幾個函數,但它的使用依舊簡單方便。一共以下10個:git
官方說明API說明:https://github.com/gulpjs/gulp/blob/master/docs/API.mdgithub
gulp4再也不可以經過數組形式傳入任務,你須要使用gulp.series()和gulp.parallel()來執行他們。例如:npm
gulp.task('default',gulp.parallel('taskA','taskB'));//並行執行
gulp.task('default',gulp.series('taskA','taskB'));//按順序執行
複製代碼
parallel和series函數能夠接受函數做爲參數,這意味着咱們能夠將任務用獨立函數表示:json
funcion taskA(){...}
funcion taskB(){...}
gulp.task(taskA);//最簡單的方式
gulp.task('i-am-taskB',taskB);//爲taskB添加任務名
gulp.task('taskA-taskB', gulp.series(taskA, taskB));//序列執行
gulp.task('taskA-taskB', gulp.parallel(taskA,taskB));//並行運行
複製代碼
並且當咱們執行序列化任務時,面板的輸出也更加清晰gulp
PS D:\github\resume> gulp
[21:49:59] Using gulpfile D:\project\gulpfile.js
[21:49:59] Starting 'default'...
[21:49:59] Starting 'copyfile'...
[21:49:59] Finished 'copyfile' after 90 ms
[21:49:59] Starting 'minifyhtml'...
[21:49:59] Finished 'minifyhtml' after 171 ms
[21:49:59] Starting 'minifyCSS'...
[21:50:00] Finished 'minifyCSS' after 353 ms
[21:50:00] Starting 'uglyfyJS'...
[21:50:01] Finished 'uglyfyJS' after 1.43 s
[21:50:01] Finished 'default' after 2.05 s
複製代碼
語法:
gulp.lastRun(taskName,timeResolution)
參數:
taskName:任務名
timeResolution(可選):返回的時間戳的精度
複製代碼
例如數組
gulp.lastRun('someTask', 1000) // 1426000004000.
gulp.lastRun('someTask', 100) // 1426000004300.
複製代碼
語法:
gulp.tree(option)
options:
{
deep:true/false //是否遍歷每一個子任務
}
複製代碼
示例gulpfile.jsbash
gulp.task('one', function(done) {
// do stuff
done();
});
gulp.task('two', function(done) {
// do stuff
done();
});
gulp.task('three', function(done) {
// do stuff
done();
});
gulp.task('four', gulp.series('one', 'two'));
gulp.task('five',
gulp.series('four',
gulp.parallel('three', function(done) {
// do more stuff
done();
})
)
);
複製代碼
實例輸出函數
gulp.tree()
// output: [ 'one', 'two', 'three', 'four', 'five' ]
gulp.tree({ deep: true })
/*output: [
{
"label":"one",
"type":"task",
"nodes":[]
},
{
"label":"two",
"type":"task",
"nodes":[]
},
{
"label":"three",
"type":"task",
"nodes":[]
},
{
"label":"four",
"type":"task",
"nodes":[
{
"label":"<series>",
"type":"function",
"nodes":[
{
"label":"one",
"type":"task",
"nodes":[]
},
{
"label":"two",
"type":"task",
"nodes":[]
}
]
}
]
},
{
"label":"five",
"type":"task",
"nodes":[
{
"label":"<series>",
"type":"function",
"nodes":[
{
"label":"four",
"type":"task",
"nodes":[
{
"label":"<series>",
"type":"function",
"nodes":[
{
"label":"one",
"type":"task",
"nodes":[]
},
{
"label":"two",
"type":"task",
"nodes":[]
}
]
}
]
},
{
"label":"<parallel>",
"type":"function",
"nodes":[
{
"label":"three",
"type":"task",
"nodes":[]
},
{
"label":"<anonymous>",
"type":"function",
"nodes":[]
}
]
}
]
}
]
}
]
*/
複製代碼
這是一個用於自動加載插件的gulp插件,安裝以下:
npm install gulp-load-plugins -D
複製代碼
當一個項目須要不少插件來管理的時候,你的gulpfile.js可能會變成這樣:
var gulp = require('gulp'),
a = require('gulp-a'),
b = require('gulp-b'),
c = require('gulp-c'),
...
...
z = require('gulp-z');
複製代碼
使用gulp-load-plugins可讓你少寫一些重複代碼,你能夠這樣使用:
var gulp = require('gulp');
//加載gulp-load-plugins插件,並立刻運行它
var plugins = require('gulp-load-plugins')();
//或是:
//var gulpLoadPlugins = require('gulp-load-plugins');
//var plugins = gulpLoadPlugins();
複製代碼
調用插件
plugins.clone() //等價於require('gulp-clone')();
複製代碼
實質上是gulp幫助咱們作了以下操做
plugins.clone= require(‘gulp-clone’);
複製代碼