zoukankan      html  css  js  c++  java
  • 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 ]);

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

  • 相关阅读:
    css中的元素旋转
    display:inlineblock的深入理解
    js时间获取。
    长英文自动换行的最终解决方法
    jqery图片展示效果
    链接A引发的思考
    电子邮件制作规范和建议
    overflow与textindent:9999px 字体隐藏及input value偏移
    jQuery load的详解
    转载:前端调试利器DebugBa
  • 原文地址:https://www.cnblogs.com/guyunxiang/p/5262421.html
Copyright © 2011-2022 走看看