| 123456789101112131415161718192021222324252627282930313233343536 |
- /*
- MIT License http://www.opensource.org/licenses/mit-license.php
- Author Alexander Akait @alexander-akait
- */
- "use strict";
- 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;
|