首页 > 代码库 > 如何写一个能在gulp build pipe中任意更改src内容的函数
如何写一个能在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 =http://www.mamicode.com/ String(file.contents); //loop for each supported images types for (var i = 0; i < module.exports.supportedImages.length; i++) { //add version of image stringData =http://www.mamicode.com/ cssImageBusterForOneImageType(stringData, module.exports.supportedImages[i]); } var finalBinaryData = http://www.mamicode.com/new Buffer(stringData, “binary”); file.contents = finalBinaryData; callback(null, file); }
var jsOutputFile = “combined.js”; var jsOutputFolder=”./dest/js” var jsSrc=http://www.mamicode.com/[“./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)); });
如何写一个能在gulp build pipe中任意更改src内容的函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。