本文是一些创建插件操控缓冲区的信息内容。
使用缓冲区
如果你的插件是依赖于基于库的缓冲区,你将可能会选择基于插件的file.contents作为缓冲使用,让我们实现一个在文本文件的内容增加前缀的插件:
var through = require('through2'); var gutil = require('gulp-util'); var PluginError = gutil.PluginError; // consts const PLUGIN_NAME = 'gulp-prefixer'; // plugin level function (dealing with files) function gulpPrefixer(prefixText) { if (!prefixText) { throw new PluginError(PLUGIN_NAME, 'Missing prefix text!'); } prefixText = new Buffer(prefixText); // allocate ahead of time // creating a stream through which each file will pass var stream = through.obj(function(file, enc, cb) { if (file.isStream()) { this.emit('error', new PluginError(PLUGIN_NAME, 'Streams are not supported!')); return cb(); } if (file.isBuffer()) { file.contents = Buffer.concat([prefixText, file.contents]); } // make sure the file goes through the next gulp plugin this.push(file); // tell the stream engine that we are done with this file cb(); }); // returning the file stream return stream; }; // exporting the plugin main function module.exports = gulpPrefixer;