webpack
Version:
Packs ECMAScript/CommonJs/AMD modules for the browser. Allows you to split your codebase into multiple bundles, which can be loaded on demand. Supports loaders to preprocess files, i.e. json, jsx, es7, css, less, ... and your custom stuff.
37 lines (29 loc) • 1.23 kB
JavaScript
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Alexander Akait @alexander-akait
*/
;
const WebpackError = require("../WebpackError");
/** @typedef {{ name: string, modules: number, size: number }} MissingSideEffectsDetails */
class MissingSideEffectsWarning extends WebpackError {
/**
* Creates an instance of MissingSideEffectsWarning.
* @param {MissingSideEffectsDetails[]} packages the packages to name, costliest first
* @param {number} total how many packages were found
* @param {number} wasted the bytes they keep in the bundle
*/
constructor(packages, total, wasted) {
super(
`missing sideEffects: ${total} ${total === 1 ? "package keeps" : "packages keep"} ${wasted} bytes of unused code because ${total === 1 ? "its" : "their"} package.json does not declare 'sideEffects':
${packages
.map(
({ name, modules, size }) =>
` ${name} (${size} bytes in ${modules} ${modules === 1 ? "module" : "modules"})`
)
.join("\n")}
Without the field webpack must assume every module runs code on import. For more info visit https://webpack.js.org/guides/tree-shaking/`
);
this.name = "MissingSideEffectsWarning";
}
}
module.exports = MissingSideEffectsWarning;