gulp之css,js压缩合并加密替换

为了防止客户端的静态资源缓存,我们需要每次更新css或js的时候,通过md5或时间戳等方式重新命名静态资源。让客户端可以重新请求资源,而不是从缓存里取。然后html模板里的src也要做相应的修改。当然,这里还有个附加的需要就是,静态资源需要自行优化(压缩合并)。

下面是我gulpfile.js的代码:  

var gulp = require(‘gulp‘),                        //基础库
    clean = require(‘gulp-clean‘),                 //清空文件夹
    minify = require(‘gulp-minify-css‘),           //css压缩
    rename = require(‘gulp-rename‘),               //文件重命名
    rev = require(‘gulp-rev‘),                     //更改版本名
    collector = require(‘gulp-rev-collector‘),     //gulp-rev的插件,用于html文件更改引用路径
    concat = require(‘gulp-concat‘),               //合并多个文件
    notify = require(‘gulp-notify‘);               //提示
    
gulp.task(‘clean‘,function(){            
    return gulp.src(‘build‘,{ read : false})       //src的第二个参数的{read:false},是不读取文件,加快程序。
        .pipe(clean());
})
gulp.task(‘index‘,[‘clean‘],function(){
    return gulp.src(‘app/index.min.html‘)
        .pipe(rename(function(path){
            path.basename =‘index‘;
            path.extname = ".html";
        }))
        .pipe(gulp.dest(‘build‘))
})

gulp.task(‘css‘,[‘index‘],function(cb){
    return gulp.src(‘app/**/*.css‘)
        .pipe(minify())
        .pipe(concat(‘main.css‘))
        .pipe(rename(function(path){
            path.basename +=‘.min‘;
            path.extname = ".css";
        }))
        .pipe(rev())
        .pipe(gulp.dest(‘build/css‘))
        .pipe(rev.manifest())
        .pipe(gulp.dest(‘build/rev‘));
    cb();
})

gulp.task(‘rev‘,[‘css‘],function(){
    return gulp.src([‘build/rev/rev-manifest.json‘,‘build/index.html‘])
        .pipe(collector({
            replaceReved : true
        }))
        .pipe(gulp.dest(‘build/‘))
        .pipe(notify("success!!!"))
})

我的目录结构:

 

app是原代码目录,build是gulp生成的

时间: 2024-10-05 04:16:55

gulp之css,js压缩合并加密替换的相关文章

RequireJS模块化后JS压缩合并

使用RequireJS模块化后代码被拆分成多个JS文件了,在部署生产环境需要压缩合并,RequireJS提供了一个打包压缩工具r.js来对模块进行合并压缩.r.js非常强大,不但可以压缩js,css,甚至可以对整个项目进行打包. r.js的压缩工具使用UglifyJS或Closure Compiler.默认使用UglifyJS(jQuery也是使用它压缩).此外r.js需要node.js环境,当然它也可以运行在Java环境中如Rhino.JAVA环境使用Ant构建可以参考另外一篇RequireJ

gulp完成javascript压缩合并,css压缩

最近需要对项目进行优化,主要是对js的压缩合并和css文件的压缩,查找相关资料之后发现gulp可以实现相关的功能,特此分享一下使用心得. 1.安装gulp gulp是基于Node.js的前端构建工具.所以首先需要安装nodejs,安装nodejs. 完成nodejs安装之后,需要使用npm安装gulp. 先安装全局gulp npm install -g gulp 然后在项目根目录下安装本地gulp. 此时项目根目录下会多出下面这个文件夹 node_modules 好的,现在gulp已经安装完成了

gulp自动化压缩合并、加版本号解决方案

虽然网上有很多的 gulp 构建文章,但是很多都已经随着 gulp 插件的更新无法运行了.因此,我写了这个比较简单的构建方案. 如果还不熟悉 gulp 的插件,可以阅读上一篇文章:精通gulp常用插件 这个方案主要是为了实现js/css的压缩合并.自动添加版本号和压缩html. gulp-csso 压缩优化css gulp-uglify 压缩js gulp-html-minify 压缩html gulp-rev-all 生成版本号 主要通过上面插件实现功能,其他插件配合使用. // gulpfi

gulp做简单的js压缩

安装工具 全局安装npm install --global gulp 项目的依赖安装npm install --save-dev gulp npm install --save-dev gulp-rename npm install --save-dev gulp-uglify npm install --save-dev gulp-concat 在要压缩的src目录下创建gulpfile.js var gulp = require('gulp'); var rename = require('

gulp(gulpfile.js)配置文件

1 /* 2 参考代码网址: 3 http://www.ido321.com/1622.html 4 http://colobu.com/2014/11/17/gulp-plugins-introduction/#gulp-rename 5 https://github.com/nimojs/gulp-book 6 */ 7 // 获取 gulp 8 var gulp = require('gulp'), 9 // js 压缩插件 (用于压缩 JS) 10 uglify = require('g

HTML+CSS+JS(面试题)

1. 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? IE: trident内核 Firefox:gecko内核 Safari:webkit内核 Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核 Chrome:Blink(基于webkit,Google与Opera Software共同开发) 2.你能描述一下渐进增强和优雅降级之间的不同吗? 渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基

gulp教程之压缩合并css,js

package.json如果你熟悉 npm 则可以利用 package.json 保存所有 npm install --save-dev gulp-xxx 模块依赖和模块版本.在命令行输入 npm init 会依次要求补全项目信息,不清楚的可以直接回车跳过 安装依赖安装 gulp 到项目(防止全局 gulp 升级后与此项目 gulpfile.js 代码不兼容) nup install gulp --save-dev 说明:--save-dev 保存配置信息至 package.json 的 dev

用gulp清除、移动、压缩、合并、替换代码

之前前端代码部署时用的是grunt,后来又出了个gulp工具,最近试用了一下,很方便,感觉比grunt简单好用,下面把一些常见的任务列一下,备用. var gulp = require('gulp'); var sdir = '0.0.1'; var ddir = '0.0.1.release'; var gutil = require('gulp-util'); var clean = require('gulp-clean'); var minifyCSS = require('gulp-m

vs合并压缩css,js插件——Bundler & Minifier

之前做了一个大转盘的抽奖活动,因为比较火,部分用户反馈看不到页面的情况,我怀疑js加载请求过慢导致,所以今天针对之前的一个页面进行调试优化. 首先想到的是对页面的js和css进行压缩优化,百度了下vs集成的插件,貌似没有很好的支持,自己在vs里找了一个非常满意的插件——Bundler & Minifier 这个vs插件下载地址:点我 插件功能说明: 1.合并多个css,js,html文件为一个单独的文件 2.保存源文件自动重新组合. 3.压缩css,js,html文件 等等...(其他我没用到,