记录gulp学习过程

作者: 酪蕊璺 | 来源:发表于2018-04-16 14:22 被阅读0次

罗列一些自己初学时参考的文章,以记录自己学习的过程

gulp.task()
gulp.src()
gulp.dest()
gulp.watch()
  • Gulp解决发布线上文件(CSS和JS)缓存问题
    使用MD5重新命名文件

  • Gulp自动添加版本号
    文件命名格式:bootstrap.min.css?v=2af420b273

    需修改以下三处:

    1. 打开node_modules\gulp-rev\index.js 第133行
    manifest[originalFile] = revisionedFile; 
    

    更新为:

    manifest[originalFile] = originalFile + '?v=' + file.revHash;
    
    1. 打开node_modules\gulp-rev\node_modules\rev-path\index.js第10行
    return filename + '-' + hash + ext;
    

    更新为:

    return filename + ext;
    
    1. 打开node_modules\gulp-rev-collector\index.js 第31行
    if (path.basename(json[key]).replace(
        new RegExp( opts.revSuffix ),'') !== path.basename(key) 
    ){
    

    更新为:

    if (path.basename(
        json[key]).split('?')[0] !== path.basename(key)
    ){
    
  • 使用gulp添加版本号
    解决以上版本号会重复追加到链接后面的问题

    打开node_modules\gulp-rev-collector\index.js修改以下两处:

    function escPathPattern(pattern) { 
        var rp = pattern.replace(/[-[]{}()*+?.^$|/\]/g, "\$&"); 
        rp = pattern + "(\?  v=(\d|[a-z]){8,10})*";
        return rp; 
    }
    
    if (opts.replaceReved) {
      patterns.push(
          escPathPattern(
              (path.dirname(key) === '.' ? '' : closeDirBySep(path.dirname(key))) +
              path.basename(key, path.extname(key))) +
              opts.revSuffix +
              escPathPattern(path.extname(key)) +
              "(\?v=(\d|[a-z]){8,10})*"
      );
    }
    

    加上 replaceReved:true

      gulp.task('rev', function() { 
           return gulp.src(['./rev/*.json', './dist/index.html'])
               .pipe(revCollector({
                     replaceReved:true;
               })) 
               .pipe(gulp.dest('./dist'));
      });
    
  • github gulp-rev
    css文件和js文件版本号写在一个rev-manifest.json文件里面

    网上blog都只写了merge:true,测试了一下发现不行,参照github加上了path才可以,还是要多参照github

    .pipe(rev.manifest({ 
          path: 'rev-manifest.json',     
          merge: true                
     }))
    
  • 用gulp做一个略完整的前端打包工作~
    循环出多个task

根据以上文章,构建针对自己前端工程的gulp,附上github工程链接:https://github.com/laoruiwen/FogUI

问题更新

  • gulp-uglify不兼容IE8
    1. 卸载插件
    npm uninstall gulp-uglify [-g] [--save-dev]
    
    1. 安装gulp-uglify1.5.4版本
    npm install --save-dev gulp-uglify@1.5.4
    
  • 提示该文件夹包含名称过长无法删除node_modules文件夹
    1. 安装rimraf
    npm install rimraf -g
    
    1. 删除node_modules
    rimraf node_modules
    

相关文章

  • 记录gulp学习过程

    罗列一些自己初学时参考的文章,以记录自己学习的过程 gulp详细入门教程区分全局安装和项目中本地安装 前端构建工具...

  • Gulp学习

    参照Gulp for Beginners来学习Gulp基本内容。以下为学习记录笔记。 安装Gulp 首先需要安装N...

  • Gulp学习记录

    Gulp中文网Gulp插件库Gulp小教程1Gulp小教程2html中对js和css引用路径问题需要看的一个典型 ...

  • Gulp 学习记录

    对传统 HTML CSS JS 文件进行代码压缩处理

  • gulp 压缩合并文件

    本文记录了在开发过程中用到的gulp使用方法。 安装 1、初始化 2、安装gulp及依赖工具 使用 1、创建 gu...

  • FIS3前端工程构建工具

    Gulp和Webpack特点对比 Gulp Gulp侧重于前端开发的整个过程的控制管理(像是流水线),Gulp是对...

  • gulp+webpack配置

    gulp+webpack配置 首先介绍一下gulp和webpack gulp gulp是前端开发过程中对代码进行构...

  • gulp学习(二)-api

    学习gulp的用法,首先得学习下gulp的几个常用的api task 源码: Gulp继承Orchestrator...

  • gulp常用插件

    最近在学习有关gulp的相关知识,gulp是打造前端工作流的利器,下面记录一些常用的插件 1.del插件安装方法 ...

  • 前端自动化工具--gulp常用插件(一)

    学习网站:http://www.vuexx.com/ gulp常用方法 #引入gulp模块 var gulp = ...

网友评论

    本文标题:记录gulp学习过程

    本文链接:https://www.haomeiwen.com/subject/yziskftx.html