32 lines
879 B
JavaScript
32 lines
879 B
JavaScript
/**
|
|
* @prettier
|
|
*/
|
|
export default class RemoveSourcemapsLackingMatchingAssetsPlugin {
|
|
apply(compiler) {
|
|
// Specify the event hook to attach to
|
|
compiler.hooks.emit.tap(
|
|
"RemoveSourcemapsLackingMatchingAssetsPlugin",
|
|
compilation => {
|
|
const assetNames = Object.keys(compilation.assets)
|
|
|
|
const sourcemapAssetNames = assetNames.filter(str =>
|
|
str.endsWith(".map")
|
|
)
|
|
|
|
const sourcemapAssetsWithoutMatchingSourceAsset = sourcemapAssetNames.filter(
|
|
name => {
|
|
return assetNames.indexOf(name.slice(0, -4)) === -1
|
|
}
|
|
)
|
|
|
|
sourcemapAssetsWithoutMatchingSourceAsset.forEach(name => {
|
|
console.warn(
|
|
`RemoveSourcemapsLackingMatchingAssetsPlugin: blocking emission of "${name}"`
|
|
)
|
|
delete compilation.assets[name]
|
|
})
|
|
}
|
|
)
|
|
}
|
|
}
|