📦 webpack
class DeleteEmptyAssetsPlugin {
trash: string[];
apply(compiler: Compiler) {
compiler.hooks.thisCompilation.tap('DeleteEmptyAssetsPlugin', compilation => {
compilation.hooks.afterOptimizeAssets.tap('DeleteEmptyAssetsPlugin', assets => {
const emptyAssets = Object.keys(assets).filter(filename => {
const asset = assets[filename];
return asset.size() === 0;
});
if (emptyAssets.length !== 0) {
console.log('Found empty chunks, try to delete it!');
}
emptyAssets.forEach(asset => delete compilation.assets[asset]);
});
});
}
}
Only ignore `.css`
, `*.module.css`
will still process by `bundler`
to generate `.json`
file.
webpack
{
test: CSS_RE,
exclude: CSS_MODULES_RE,
sideEffects: true,
use: [
{
loader: require.resolve('@ies/pace-kit/ignore-loader.cjs'),
},
],
}
{
"skipLibCheck": true,
}