unused-assets-webpack-plugin
Version:
2 lines (1 loc) • 1.27 kB
JavaScript
;var e=require("node:fs"),r=e.writeFile,t=e.readdirSync,i=e.existsSync,s=e.statSync,o=e.readFileSync,a=require("node:path"),n=a.resolve,c=a.join,p=a.extname,u=require("picocolors"),l=require("crypto").createHash,d={imagePath:"src",imageType:[".jpg",".jpeg",".png",".gif",".bmp",".svg",".webp"],isAbsolutePath:!1},g=function(e){var r,a,d=e.imagePath,g=e.imageType,f=e.isAbsolutePath,h=n(process.cwd()),y=n(process.cwd(),d),m=new Map,_=function(e){if(s(e).isDirectory())t(e).forEach((function(r){_(c(e,r))}));else if(g.includes(p(e).toLowerCase())){var r=o(e),i=l("md5").update(r).digest("hex"),a=e.replaceAll("\\","/");f||(a=e.replace(h,"").replaceAll("\\","/")),m.has(i)?m.set(i,__spreadArray(__spreadArray([],m.get(i),!0),[a],!1)):m.set(i,[a])}};return i(y)||(r="文件夹不存在:",a=y,console.log("".concat(u.bold(u.red(r))," ").concat(a)),process.exit(0)),t(y).forEach((function(e){var r=c(y,e);_(r)})),m},f=function(){function e(e){this.options=e}return e.prototype.apply=function(){var e,t=__assign(__assign({},d),this.options),i=g(t),s=[];i.forEach((function(e){e.length>1&&s.push({"相同图片":e})})),e=s,r("./image-duplicates.json",JSON.stringify(e),(function(e){e&&u.red("image-duplicates.json 文件写入失败")}))},e}();module.exports=f;