gulp使用简要记录

 

 

1.首先安装nodejs (版本号是12版本以上) 2.安装gulp: (安装gulp 4.0以上)     npm install gulp  3.npm install:在项目中生成node_models文件夹 4.npm init:生成package.json文件 5.安装gulp插件:

 

    npm install --save-dev gulp-rev

 

    npm install --save-dev gulp-rev-collector

 

    npm install --save-dev gulp-asset-rev 6.下一步配置gulpfile.js(在根目录下增加一个js文件)

 

  var gulp = require('gulp'),     rev = require('gulp-rev'),     revCollector = require('gulp-asset-rev');   //开启一个任务   gulp.task('a', function(){     //检测gulp是否启动     console.log("gulp启动了");   })

 

  var cssSrc = '*.css',       jsSrc = '*.js';   //CSS生成文件hash编码并生成 rev-manifest.json文件名对照映射   gulp.task('revCss', function(){     return gulp.src(cssSrc)         .pipe(rev()) //文件名加MD5后缀         .pipe(gulp.dest('dist')) //输出到css目录         .pipe(rev.manifest('rev-css-manifest.json')) //生成一个rev-manifest.json         .pipe(gulp.dest('dist/rev')); //将 rev-manifest.json 保存到 rev 目录内   });   // //js生成文件hash编码并生成 rev-manifest.json文件名对照映射   gulp.task('revJs', function(){     return gulp.src(jsSrc)         .pipe(rev())         .pipe(gulp.dest('dist'))//输出到css目录         .pipe(rev.manifest('rev-js-manifest.json'))         .pipe(gulp.dest('dist/rev'));   });   //Html替换css、js文件版本   gulp.task('revHtml', function () {            return gulp.src(['dist/rev/*.json', '*.html'])         .pipe(revCollector({             replaceReved: true, // 设置replaceReved标识, 用来说明模板中已经被替换的文件是否还能再被替换,默认是false         }))         .pipe(gulp.dest('dist'));   });   //开发构建,默认任务   gulp.task('default',gulp.series(gulp.parallel('revCss','revJs','revHtml')));

 

  运行gulp命令

 

注意事项: 1、源文件引用js和css时,不能加?v=,否则不会自动生成hash版本号

 

2、上面的var revCollector = require(‘gulp-asset-rev’); //给js css加版本号 gulp-asset-rev’模块就是用来给代码加版本号的 pipe方法里面调用 revCollector()此方法 版本号加好了但是是index-2345ejhd.js这种格式的不是我们想要的 我们希望是…/plugins/select/css/selectFilter.css?v=b2f872f 这种格式

 

运行gulp命令之前要是改node_models配置模块(行数不一定对得上仅做参考。)

 

①:gulp-rev(文件夹)下面的index.js:

 

    (135行)manifest[originalFile] = revisionedFile;

 

    改成:manifest[originalFile] = originalFile + '?v=' + file.revHash;

 

  ②:gulp-rev-collector(文件夹)下面的index.js:

 

    (40行)var cleanReplacement =  path.basename(json[key]).replace(new RegExp( opts.revSuffix ), '' );

 

    改成:var cleanReplacement =  path.basename(json[key]).split('?')[0];            (175行)regexp: new RegExp( prefixDelim + pattern, 'g' ),

 

    改成:regexp: new RegExp( prefixDelim + pattern+'(\\?v=\\w{10})?', 'g' ),

 

  ③:rev-path(文件夹)下面的index.js:

 

    (9行)return modifyFilename(pth, (filename, ext) => `${filename}-${hash}${ext}`);

 

    改成:return modifyFilename(pth, (filename, ext) => `${filename}${ext}`);

 

  ④:gulp-asset-rev(文件夹)下面的index.js:

 

    (78行)var verStr = (options.verConnecter || "-") + md5;

 

    改成:verStr = (options.verConnecter || "") + md5;

 

    (80行)src = src.replace(verStr, '').replace(/(\.[^\.]+)$/, verStr + "$1");

 

    改成:src=src+"?v="+verStr;

 

 

 

上一篇:小程序体积大于2M不能上传和预览,怎么处理


下一篇:12-Git