gulpfile.js
const gulp = require ( 'gulp' )
const htmlmin = require ( 'gulp-htmlmin' )
const fileinclude = require ( 'gulp-file-include' )
const less = require ( 'gulp-less' )
const csso = require ( 'gulp-csso' )
const babel = require ( 'gulp-babel' )
const uglify = require ( 'gulp-uglify' )
gulp. task ( 'first' , ( ) => {
console. log ( "我人生中的第一个gulp任务执行了!" ) ;
gulp. src ( './src/css/base.css' )
. pipe ( gulp. dest ( './dist/css' ) )
} )
gulp. task ( 'htmlmin' , ( ) => {
console. log ( "开始执行htmlmin任务……" ) ;
gulp. src ( './src/*.html' )
. pipe ( fileinclude ( ) )
. pipe ( htmlmin ( { collapseWhitespace: true } ) )
. pipe ( gulp. dest ( 'dist' ) )
} )
/ / 1. less语法转化
/ / 2. css代码压缩
gulp. task ( 'cssmin' , ( ) => {
console. log ( "开始执行cssmin任务……" ) ;
gulp. src ( [ './src/css/*.less' , './src/css/*.css' ] )
. pipe ( less ( ) )
. pipe ( csso ( ) )
. pipe ( gulp. dest ( 'dist/css' ) )
} )
/ / 1. es6代码转化
/ / 2. js代码压缩混淆
gulp. task ( 'jsmin' , ( ) => {
console. log ( "开始执行jsmin任务……" ) ;
gulp. src ( './src/js/*.js' )
. pipe ( babel ( {
presets: [ '@babel/env' ]
} ) )
. pipe ( uglify ( ) )
. pipe ( gulp. dest ( 'dist/js' ) )
} )
/ / 复制文件夹
gulp. task ( 'copy' , ( ) => {
console. log ( "开始执行copy任务……" ) ;
gulp. src ( './src/img/*' )
. pipe ( gulp. dest ( 'dist/img' ) )
gulp. src ( './src/lib/*' )
. pipe ( gulp. dest ( 'dist/lib' ) )
} )
gulp. task ( 'default' , [ 'htmlmin' , 'cssmin' , 'jsmin' , 'copy' ] , ( ) => {
console. log ( "default任务执行完成!" ) ;
} ) ;
package.json
{
"name" : "gulp_learn" ,
"version" : "1.0.0" ,
"description" : "" ,
"main" : "gulpfile.js" ,
"scripts" : {
"test" : "echo \"Error: no test specified\" && exit 1"
} ,
"keywords" : [ ] ,
"author" : "" ,
"license" : "ISC" ,
"devDependencies" : {
"gulp" : "^3.9.1" ,
"gulp-file-include" : "^2.2.2" ,
"gulp-htmlmin" : "^5.0.1" ,
"gulp-uglify" : "^3.0.2"
} ,
"dependencies" : {
"@babel/core" : "^7.10.4" ,
"@babel/preset-env" : "^7.10.4" ,
"gulp-babel" : "^8.0.0" ,
"gulp-csso" : "^4.0.1" ,
"gulp-less" : "^4.0.1"
}
}