一笔风尘

导航

gulp 配置前端项目打包

项目发布时,需要对项目js文件进行压缩,混淆,连接等操作以减小项目http请求,加快访问。

gulpjs.com中有很多插件可以用来配置打包部署。

需要用的常用插件有:

gulp-jsmin  压缩js

gulp-minify-css  压缩css

gulp-imagemin  压缩图片

gulp-rename  重命名

gulp-clean  清空文件夹

gulp-copy  拷贝引用库,字体等文件

gulp-replace  替换html内容(将原来.js引用改为.min.js引用)

前置过程不再赘述,安装插件:

1 npm install --save-dev gulp gulp-jsmin gulp-minify-css gulp-imagemin gulp-rename gulp-clean gulp-copy gulp-replace
 1 const gulp = require('gulp'),
 2   jsmin = require('gulp-jsmin'),
 3   cssmin = require('gulp-minify-css'),
 4   rename = require('gulp-rename'),
 5   copy = require('gulp-copy'),
 6   clean = require('gulp-clean'),
 7   imagemin = require('gulp-imagemin'),
 8   replace = require('gulp-replace');
 9 
10 // 清空文件夹
11 gulp.task('clean', () => {
12   gulp.src('dist')
13     .pipe(clean())
14 })
15 
16 // js压缩
17 gulp.task('jsmin', () => {
18   gulp.src('js/*.js')
19     .pipe(jsmin())
20     .pipe(rename({
21       suffix: '.min'
22     }))
23     .pipe(gulp.dest('dist/js'));
24 });
25 
26 // css压缩
27 gulp.task('cssmin', () => {
28   gulp.src('css/*.css')
29     .pipe(cssmin())
30     .pipe(rename({
31       suffix: '.min'
32     }))
33     .pipe(gulp.dest('dist/css'))
34 });
35 
36 // 压缩图片
37 gulp.task('imagemin', () => {
38   gulp.src('images/*')
39     .pipe(imagemin())
40     .pipe(gulp.dest('dist/images/'))
41 });
42 
43 // 复制文件
44 gulp.task('copy', () => {
45   gulp.src('lib/**/*')
46     .pipe(copy('dist'))
47 });
48 
49 // 替换HTML中的js及css引用为.min引用
50 gulp.task('replace', () => {
51   gulp.src('index.html')
52     .pipe(replace(/js\/.*\./g, '$&min.'))
53     .pipe(replace(/css\/.*\./g, '$&min.'))
54     .pipe(gulp.dest('dist'))
55 });
56 
57 // 部署任务
58 gulp.task('deploy', [
59   'clean',
60   'jsmin',
61   'cssmin',
62   'imagemin',
63   'copy',
64   'replace'
65 ]);

以上,即可完成一套前端项目的打包。

posted on 2016-03-10 16:31  一笔风尘  阅读(784)  评论(0编辑  收藏  举报