zoukankan      html  css  js  c++  java
  • 如何写一个能在gulp build pipe中任意更改src内容的函数

    gulp在前端自动化构建中非常好用,有非常丰富的可以直接拿来使用的plugin,完成我们日常构建工作。

    但是万事没有十全十美能够完全满足自己的需求,这时我们就要自己动手写一个小的函数,用于在gulp stream pipeline中执行我们想要的动作,比如我有一个需求在build后将gulp-inject插入的assets url修改为laravel的一个helper以便识别不同的运行环境:如果是staging环境则不要上cdn方便调试,如果是生产环境则将url修改为cdn的url,实现网站快速飞起来的梦想。怎们办呢?

    一个可行的偷懒方案是使用gulp-through2 plugin,不需要我们写完整的plugin,而只需关注我们想要的功能:

    https://meanstack.wordpress.com/2015/10/09/write-your-own-gulp-module-with-example-as-image-cache-buster-for-css/

    function (file, enc, callback) {
    var stringData = String(file.contents);
    //loop for each supported images types
    for (var i = 0; i < module.exports.supportedImages.length; i++) {
    //add version of image
    stringData = cssImageBusterForOneImageType(stringData, module.exports.supportedImages[i]);
    }
    var finalBinaryData = new Buffer(stringData, “binary”);
    file.contents = finalBinaryData;
    callback(null, file);
    }
    var jsOutputFile = “combined.js”;
    var jsOutputFolder=”./dest/js”
    var jsSrc=[“./src/js/**/*.js”];
    gulp.task(‘jsconcat’, function () {
    gulp.src(jsSrc)
    .pipe(uglifyJs())
    .pipe(concat(jsOutputFile, {newLine: ‘ ‘}))
    .pipe(jshint())
    .pipe(through.obj(imagebuster.jsImageBuster))
    .pipe(gulp.dest(jsOutputFolder));
    });
  • 相关阅读:
    Python—requests模块详解
    强烈推荐(原创亲测)!!!Fiddler抓取https设置详解(图文)
    dexlib2的源码框架
    Android检测代理
    APP加固反调试(Anti-debugging)技术点汇总
    IDA逆向常用宏定义
    JNI学习积累之一 ---- 常用函数大全
    CMake之CMakeLists.txt编写入门
    Android Project和app中两个build.gradle配置的区别
    更新说明
  • 原文地址:https://www.cnblogs.com/kidsitcn/p/6344403.html
Copyright © 2011-2022 走看看