1. 程式人生 > >gulp.js

gulp.js

ins target 如果 compress 圖片 save const gulp mon

const gulp = require("gulp");

/*

原理:

管道機制 基於流的自動化工具

步驟

1、開啟任務 gulp.task() 參數1:任務名稱 參數2:回調函數 (任務名稱的集合)

2、輸入源 gulp.src() 文件存儲的路徑

3、管道 pipe 需要文件工作的一個流程

4、輸出源 gulp.dest() 文件存儲的路徑

輸入源 管道 輸出源

飯盆 你媽媽的嘴 你的嘴

index.html 壓縮 dist文件夾中

*/

//文件拷貝

//創建了一個任務copyindex

gulp.task("copyIndex",function(){

//找到輸入源

gulp.src("src/html/index.html")

//通過管道給了輸出源

.pipe(gulp.dest("dist/html"))

})

gulp.task("copyCss",function(){

gulp.src("src/css/*")

.pipe(gulp.dest("dist/css"))

})

gulp.task("copyImg",function(){

//src的img文件夾下面的一個或多個文件夾中的所有文件

gulp.src("src/img/**/*")

.pipe(gulp.dest("dist/css"))

})

//匹配多個屬性

gulp.task("copyImg",function(){

//匹配src文件夾下面的img下面0個或多個文件夾下面的所有文件裏面的 png文件或者jpg文件

gulp.src("src/**/*.{png,jpg}")

.pipe(gulp.dest("dist/css"))

})

//圖片壓縮

//引入圖片壓縮的模塊

const imgMin = require("gulp-imagemin");

//開啟任務

gulp.task("imgMin",function(){

gulp.src("src/img/**/*")

//在管道中壓縮

.pipe(imgMin())

//壓縮完畢後存放在dist目錄下面的img文件夾下

.pipe(gulp.dest("dist/img"))

})

//壓縮js

const jsMin = require("gulp-uglify");

//開啟任務

gulp.task("jsMin",function(){

gulp.src("src/js/**/*")

.pipe(jsMin())

.pipe(gulp.dest("dist/js"))

})

//壓縮css 編譯sass

const cssMin = require("gulp-sass-china");

gulp.task("cssMin",function(){

gulp.src("src/sass/**/*")

//壓縮並編譯

.pipe(cssMin({

//sass編譯的樣式

outputStyle:"compressed"

}))

.pipe(gulp.dest("src/css"))

})

//監聽

gulp.task("watch",function(){

//當sass文件夾下面的文件發送變化的時候我就去執行cssMin這個任務

gulp.watch("src/sass/**/*",["cssMin"])

})

//-----------開始

//開啟服務器

const connect = require("gulp-connect");

//跨域處理

const proxy = require("http-proxy-middleware");

gulp.task("server",function(){

connect.server({

root:"src",

port:8877,

//是否更新

livereload:true,

//跨域處理

middleware:function(){

return [

//localhost:8877/v4

//第一個參數是請求的地址 第二個參數是將當前地址轉換到哪個一個主機之上

proxy("/v4",{

//代理的主機頭 協議域名端口

target:"https://m.maizuo.com",

changeOrigin:true

}),

proxy("/commonHeader",{

//代理的主機頭 協議域名端口

target:"https://mapi.m.jd.com",

changeOrigin:true

})

]

}

})

})

//熱更新

gulp.task("watch-server",function(){

//監聽src下面所有的文件,當文件發生了改變以後

gulp.watch("src/**/*",function(){

//讓服務器刷新更新所有文件

gulp.src("src/**/*")

.pipe(connect.reload(true))

})

})

gulp.task("F5",["server","watch-server","cssMin"]);

//----結束

//合並文件

const concat = require("gulp-concat");

gulp.task("concat",function(){

gulp.src(["src/js/js/ajax.js","src/js/js/lunbo.js"])

.pipe(concat("abc.js"))

.pipe(gulp.dest("dist/js"))

})

//ES6轉ES5

const babes = require(‘gulp-babel‘);

const babel = require(‘gulp-babel‘);

gulp.task(‘babel‘, () =>

gulp.src(‘src/es6.js‘)

.pipe(babel({

presets: [‘@babel/env‘]

}))

.pipe(gulp.dest(‘dist‘))

);

gulp:

基於流的自動化工具

合並文件

壓縮文件

熱更新

開啟服務器

代碼轉義

......

node

webpack gulp 基於node

node

Node.js 的包管理器 npm,是全球最大的開源庫生態系統

1、npm是一個包

2、npm是一個網站

3、是一個命令

1、全局安裝gulp

cnpm install gulp -g

2、如果需要使用gulp的時候

a、cnpm init 初始化倉庫

b、局部安裝gulp cnpm install gulp --save-dev

--save:將保存配置信息至package.json

-dev:保存至package.json的devDependencies節點

c、創建一個gulpfile.js文件

3、pageage.json node_modules gulpfile三個文件必須在同一目錄

4、運行任務

gulp 任務名稱

const gulp = require("gulp");
/*原理:管道機制 基於流的自動化工具
步驟1、開啟任務 gulp.task() 參數1:任務名稱 參數2:回調函數 (任務名稱的集合)
2、輸入源 gulp.src() 文件存儲的路徑
3、管道 pipe 需要文件工作的一個流程
4、輸出源 gulp.dest() 文件存儲的路徑

輸入源 管道 輸出源飯盆 你媽媽的嘴 你的嘴
index.html 壓縮 dist文件夾中
*/
//文件拷貝//創建了一個任務copyindexgulp.task("copyIndex",function(){//找到輸入源gulp.src("src/html/index.html")//通過管道給了輸出源.pipe(gulp.dest("dist/html"))})

gulp.task("copyCss",function(){gulp.src("src/css/*").pipe(gulp.dest("dist/css"))})

gulp.task("copyImg",function(){//src的img文件夾下面的一個或多個文件夾中的所有文件gulp.src("src/img/**/*").pipe(gulp.dest("dist/css"))})

//匹配多個屬性gulp.task("copyImg",function(){//匹配src文件夾下面的img下面0個或多個文件夾下面的所有文件裏面的 png文件或者jpg文件gulp.src("src/**/*.{png,jpg}").pipe(gulp.dest("dist/css"))})

//圖片壓縮//引入圖片壓縮的模塊const imgMin = require("gulp-imagemin");//開啟任務gulp.task("imgMin",function(){gulp.src("src/img/**/*")//在管道中壓縮.pipe(imgMin())//壓縮完畢後存放在dist目錄下面的img文件夾下.pipe(gulp.dest("dist/img"))})

//壓縮jsconst jsMin = require("gulp-uglify");//開啟任務gulp.task("jsMin",function(){gulp.src("src/js/**/*").pipe(jsMin()).pipe(gulp.dest("dist/js"))})

//壓縮css 編譯sassconst cssMin = require("gulp-sass-china");gulp.task("cssMin",function(){gulp.src("src/sass/**/*")//壓縮並編譯.pipe(cssMin({//sass編譯的樣式outputStyle:"compressed"})).pipe(gulp.dest("src/css"))})
//監聽
gulp.task("watch",function(){//當sass文件夾下面的文件發送變化的時候我就去執行cssMin這個任務gulp.watch("src/sass/**/*",["cssMin"])})

//-----------開始
//開啟服務器const connect = require("gulp-connect");//跨域處理const proxy = require("http-proxy-middleware");
gulp.task("server",function(){connect.server({root:"src",port:8877,//是否更新livereload:true,//跨域處理middleware:function(){return [//localhost:8877/v4//第一個參數是請求的地址 第二個參數是將當前地址轉換到哪個一個主機之上proxy("/v4",{//代理的主機頭 協議域名端口target:"https://m.maizuo.com",changeOrigin:true}),proxy("/commonHeader",{//代理的主機頭 協議域名端口target:"https://mapi.m.jd.com",changeOrigin:true})]}})})

//熱更新gulp.task("watch-server",function(){//監聽src下面所有的文件,當文件發生了改變以後gulp.watch("src/**/*",function(){//讓服務器刷新更新所有文件gulp.src("src/**/*").pipe(connect.reload(true))})})

gulp.task("F5",["server","watch-server","cssMin"]);

//----結束


//合並文件const concat = require("gulp-concat");
gulp.task("concat",function(){gulp.src(["src/js/js/ajax.js","src/js/js/lunbo.js"]).pipe(concat("abc.js")).pipe(gulp.dest("dist/js"))})

//ES6轉ES5const babes = require(‘gulp-babel‘);
const babel = require(‘gulp-babel‘); gulp.task(‘babel‘, () => gulp.src(‘src/es6.js‘) .pipe(babel({ presets: [‘@babel/env‘] })) .pipe(gulp.dest(‘dist‘)));

gulp.js