一、安装
npm install --save-dev gulp gulp-cli
二、创建配置文件 gulpfile.js
定义 Gulp 任务,从而使用 gulp ${taskName}
来运行他。
# npm pkg npm install --save-dev gulp-uglify # gulpfile.js const gulp = require('gulp'); const uglify = require('gulp-uglify'); gulp.task('build', function () { return gulp .src('./src/index.js') .pipe(uglify()) .pipe(gulp.dest('lib')); }); # >_ npx gulp build
gulp.task()
定义任务名字。gulp.src()
方法存放源文件(本例 ./src/index.js
),如果要处理多个文件要写成数组形式:gulp.src(['1.js', '2.js'])
。通过管道 .pipe()
内的方法进行处理这些文件,最后通过 gulp.dest()
保存修改过的文件。
三、打包多个文件
# npm pkg npm install --save-dev gulp-concat # gulpfile.js const gulp = require('gulp'); const uglify = require('gulp-uglify'); const concat = require('gulp-concat'); gulp.task('build', function () { console.log('打包多个文件!'); return gulp .src(['./src/1.js', './src/2.js', './src/3.js', './src/4.js', './src/5.js']) .pipe(uglify()) .pipe(concat('index.js')) .pipe(gulp.dest('lib')); }); # >_ npx gulp build
gulp-concat
将 gulp.src()
的文件按顺序打包进 concat()
内定义的文件名中。
四、打包 HTML
# npm pkg npm install --save-dev gulp-htmlclean gulp-htmlmin # gulpfile.js const gulp = require('gulp'); const htmlclean = require('gulp-htmlclean'); // 精简html const htmlmin = require('gulp-htmlmin'); // 压缩html gulp.task('html', function () { return gulp .src('./src/index.html') .pipe(htmlclean()) .pipe( htmlmin({ removeComments: true, // 清除HTML注释 collapseWhitespace: true, // 压缩HTML minifyJS: true, // 压缩页面JS minifyCSS: true, // 压缩页面CSS minifyURLs: true }) ) .pipe(gulp.dest('lib')); }); # >_ npx gulp html
思路和打包 JS 文件如出一辙,即 Gulp 是输入、管道、输出三步走,对待一切文件一视同仁。
五、开发 & 调试
使用 gulp.watch()
监听文件变化并打包。
# gulpfile.js // ... gulp.task('watch', function () { gulp.watch('src/**/*.js', gulp.series(['build'])); }); # >_ npx gulp watch
gulp.watch()
监听相应文件的变化,然后执行 gulp.series()
内的任务。