Gulp4 下构建WEB项目,进行 压缩、清除缓存

 

目录结构

 

 

 

 

 

 

 

 

最近需要打包功能,搜到了一篇文章:https://www.jianshu.com/p/a37457cfbf3f,本文是根据这篇文章上的代码来写的。

使用的是gulp4,使用时遇到了一些坑,也有可能是我配置有问题.......

如: gulp4的写法有改变,使用 gulp-rev-all 生成的文件与 gulp-rev 生成的配置文件名字不对应问题(我是把整个项目移入过去构建的)

本文无需配置任何配置文件,直接开花就完事了。

解决方案:

    ( 需对gulp有一定了解 )

   (新建个目录,将package.json 放置当前目录中,然后使用命令行cd到当前目录,输入npm install)

   (然后在当前目录新建个文件夹,名为web,将项目放置该目录里。然后输入gulp即可)

    1. package.json 文件   输入 npm install  即可

{
  "name": "pack",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "gulp": "^4.0.2",
    "merge-stream": "^1.0.1"
  },
  "dependencies": {
    "del": "^4.1.1",
    "gulp-clean-css": "^4.2.0",
    "gulp-rename": "^1.4.0",
    "gulp-rev-all": "^1.0.0",
    "gulp-rev-collector": "^1.1.1",
    "gulp-uglify": "^3.0.2",
    "through2": "^3.0.1"
  }
}

    2. 在 gulpfile.js 中加入如下代码

​
var gulp = require('gulp'),
    revC = require('gulp-rev-collector'),   // 重构文件内的路径引用
    RevAll = require('gulp-rev-all'),   // 清除缓存,重构文件名
    cssMin = require('gulp-clean-css'), //css压缩
    rename = require('gulp-rename'),    //重命名
    uglify = require('gulp-uglify'),    //js压缩
    clearAll = require('del');  //删除文件
    
    

//开发构建

//定义特殊文件(图片,字体文件等,会在任务开始前就移入至min文件夹)
var resource = [
    "web/**/*",
    "!web/**/*.js",
    "!web/**/*.css",
    "!web/**/*.html"
];

//定义css、js、html源文件路径
var cssSrc = 'web/**/*.css',
    jsSrc = 'web/**/*.js',
    htmlSrc = 'web/**/*.html';


//将除了css,js,html 的资源先移入至目标目录
gulp.task('moveResource', function() {
    return gulp.src(resource)       //指定获取到src下的所有css文件。
        .pipe(gulp.dest('min'));//生成目标压缩css文件
});

// css打版本
gulp.task('revCss', function() {
    return gulp.src(cssSrc)       //指定获取到src下的所有css文件。
        .pipe(cssMin({
            compatibility: 'ie8',    //兼容IE8
            rebase: false  //禁用引用路径重新定位,避免定位后找不到该文件问题
        }))     //执行压缩操作
        .pipe(RevAll.revision({ hashLength: 10 }))
        .pipe(gulp.dest('min'))
        .pipe(RevAll.manifestFile())
        .pipe(rename({     //重命名
            suffix: '.css'
        }))
        .pipe(gulp.dest('min'));//生成目标压缩css文件
});

// js打版本
gulp.task('revJs',function () {
    return gulp.src(jsSrc)        //指定获取到src下的所有js文件。
        .pipe(uglify())         //执行压缩操作
        .pipe(RevAll.revision({hashLength: 10 }))
        .pipe(gulp.dest('min'))
        .pipe(RevAll.manifestFile())
        .pipe(rename({
            suffix: '.js'
        }))
        .pipe(gulp.dest('min'));//生成目标压缩js文件
});

//Html替换css、js引用文件版本
gulp.task('revHtml', function () {
    return gulp.src(['min/*.json', htmlSrc,"min/**/*.js"])
        .pipe(revC())
        .pipe(gulp.dest('min'));
});

//清空dist文件夹
gulp.task('clearAll', function () {
    return clearAll('min');
});

gulp.task('dev', gulp.series('moveResource','revCss','revJs','revHtml'));

// 开发js、css打版本入口
gulp.task('g', gulp.series('clearAll','dev',function(){}));

​

    3. 在 项目目录下 创建个 web 文件夹,把需要构建的项目放在里面

    4. 在终端运行  gulp 即可

 

完结,   参考文章: https://www.jianshu.com/p/a37457cfbf3f

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值