@quick-game/cli
Version:
Command line interface for rapid qg development
30 lines (26 loc) • 1.14 kB
JavaScript
;var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));function CheckCompressionPlugin(callback) {
this.callback = callback;
}
CheckCompressionPlugin.prototype.apply = function (compiler) {
compiler.hooks.thisCompilation.tap('CheckCompressionPlugin', function (compilation) {
compilation.hooks.processAssets.tap(
{
name: 'CheckCompressionPlugin',
stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT
},
function (assets) {
var compressedFiles = (0, _keys.default)(assets).filter(function (name) {
return name.endsWith('.wasm.code.unityweb.br');
});
var hasCompressed = compressedFiles.length > 0;
if (typeof this.callback === 'function') {
this.callback({
compressed: hasCompressed,
files: compressedFiles
});
}
}.bind(this) // 确保 this.callback 正确指向插件实例
);
}.bind(this));
};
module.exports = CheckCompressionPlugin;