jd-tiny
Version:
可对一整个项目进行打包,自动处理文件间与图片的依赖关系,并能实现图片压缩、上传、线上链接替换等
38 lines (34 loc) • 1.24 kB
JavaScript
function FilesListPlugin(options) {
this.options = options;
}
FilesListPlugin.prototype.apply = function(compiler) {
compiler.plugin('emit', function(compilation, callback) {
var fileslist = [],
fileDependencies = compilation.fileDependencies;
for (var filename in compilation.assets) {
if (filename.indexOf('cacheImg/')===0) {
for (var i = 0; i < fileDependencies.length; i++) {
if (new RegExp(filename.slice(25)).test(fileDependencies[i])) {
fileslist.push({
imgName: filename.slice(25),
hash: filename.slice(9, 24),
hashName: filename.slice(9)
});
fileDependencies.splice(i,1);
break;
}
}
}
}
compilation.assets['fileslist.md'] = {
source: function() {
return JSON.stringify(fileslist, null, 4);
},
size: function() {
return fileslist.length;
}
};
callback();
});
};
module.exports = FilesListPlugin;