zoukankan      html  css  js  c++  java
  • gulp使用指南

    1.官方网站 http://www.gulpjs.com.cn/


    2.gulp安装  http://www.ydcss.com/archives/18


    3.目录结构

    4.index.html


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
    </head>
    <body>
        <input type="button" id="button1" value="Click">
        <script src="js/index.js" ></script>
    </body>
    </html>


    5.index.js

    $(function () {
        $('#button1').click(function () {
            alert('button1');
        });
    });
    


    6.config.js

    var src = '../src';
    var dest = '../dist';
    var config = {
        js: {
            src: src + "/js/**/*",
            dest: dest + "/js",
            rev: dest + "/rev/js"
        },
        rev:{
            revJson: dest + "/rev/**/*.json",
            src: src + "/*.html",
            dest: dest
        }
    }
    module.exports = config;

    7.gulpfile.js

    var gulp = require('gulp');
    
    //使用gulp-uglify压缩javascript文件,减小文件大小。http://www.ydcss.com/archives/54
    var uglify = require('gulp-uglify');
    
    //根据静态资源内容,生成md5签名,打包出来的文件名会加上md5签名,同时生成一个json用来保存文件名路径对应关系。http://www.cnblogs.com/1wen/p/5421212.html
    var rev = require('gulp-rev');
    
    //这个插件就是从manifests中获取静态资源版本数据, 该数据由不同的流产生, 并且替换html中的链接。 http://blog.csdn.net/hayleyxia/article/details/46969711
    var revCollector = require('gulp-rev-collector');
    
    //优雅的异步处理任务。https://www.npmjs.com/package/gulp-sync
    var gulpsync = require('gulp-sync')(gulp);
    
    var config = require('./config').js;
    var configRev = require('./config').rev;
    
    
    gulp.task('js', function() {
        return gulp.src(config.src)
            .pipe(uglify({mangle: false, compress: {properties: false}, output: {quote_keys: true}}))
            .pipe(rev())
            .pipe(gulp.dest(config.dest))
            .pipe(rev.manifest())
            .pipe(gulp.dest(config.rev));
    });
    
    gulp.task('rev', function () {
        return gulp.src([configRev.revJson, configRev.src])
            .pipe(revCollector({replaceReved: true,}))
            .pipe(gulp.dest(configRev.dest) );
    });
    
    gulp.task('default',gulpsync.sync(['js', 'rev']),function () {
    
    });
    

    8.packgae.json
    {
      "name": "demo",
      "description": "member-frontend",
      "license": "ISC",
      "repository": {
        "type": "git",
        "url": "git+ssh://git@github.com/npm/npm.git"
      },
      "devDependencies": {
        "cheerio": "^1.0.0-rc.1",
        "gulp": "^3.9.1",
        "gulp-changed": "^1.3.2",
        "gulp-clean": "^0.3.2",
        "gulp-concat": "^2.6.0",
        "gulp-html-replace": "^1.6.2",
        "gulp-if": "^2.0.1",
        "gulp-minify-css": "^1.2.4",
        "gulp-rename": "^1.2.2",
        "gulp-rev": "^7.1.2",
        "gulp-rev-collector": "^1.0.5",
        "gulp-sync": "^0.1.4",
        "gulp-uglify": "^2.0.0",
        "map-stream": "0.0.7",
        "minimist": "^1.2.0",
        "vinyl-fs": "2.4.4"
      },
      "bugs": {
        "url": "https://github.com/npm/npm/issues"
      },
      "homepage": "https://github.com/npm/npm#readme",
      "version": "1.0.0",
      "main": "gulpfile.js",
      "dependencies": {},
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "xutongbao"
    }
    


    9.压缩后的index.js

    $(function(){$("#button1").click(function(){alert("button1")})});


    10.遍历所有html,替换文件命名后的效果





    11.参考链接

    变态的静态资源缓存与更新https://my.oschina.net/jathon/blog/404968

    项目部署缓存解决方案http://www.cnblogs.com/1wen/p/5421212.html











  • 相关阅读:
    python编码问题和py2和py3的不同
    day27
    多继承补充
    zoj3820 Building Fire Stations 树的中心
    DLX舞蹈链 hdu5046
    时间复杂度
    线性求中位数 poj2388
    codeforce447 D SGU 548 贪心+优先队列
    hdu4864 hdu4268 贪心 lower_bound
    zoj3672 Gao The Sequence
  • 原文地址:https://www.cnblogs.com/xutongbao/p/9924984.html
Copyright © 2011-2022 走看看