UNPKG

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.

56 lines (46 loc) 1.7 kB
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Alexander Akait @alexander-akait */ "use strict"; const WebpackError = require("./WebpackError"); /** * @typedef {object} CacheEffectiveness * @property {number} total how many modules the compilation holds * @property {number} rebuilt how many of them were built rather than reused * @property {number} uncacheable how many can never be reused * @property {string[]} reasons why they cannot, most frequent first */ class CacheEffectivenessWarning extends WebpackError { /** * Creates an instance of CacheEffectivenessWarning. * @param {CacheEffectiveness} effectiveness what the compilation reused */ constructor({ total, rebuilt, uncacheable, reasons }) { const lines = []; // Only stated when something was reused, which is what proves the cache was // warm — a cold build rebuilds everything by design. if (rebuilt < total) { lines.push( `${rebuilt} of ${total} modules were rebuilt although the cache was warm.` ); } if (uncacheable > 0) { lines.push( `${uncacheable} ${ uncacheable === 1 ? "module is" : "modules are" } not cacheable, so ${ uncacheable === 1 ? "it rebuilds" : "they rebuild" } on every build: ${reasons.join(", ")}.` ); } super( `module caching: ${lines.join( " " )}\nA loader calling 'this.cacheable(false)', or a value that changes every build, prevents reuse. Stats list the modules individually as '[not cacheable]'.\nFor more info visit https://webpack.js.org/configuration/cache/` ); /** @type {string} */ this.name = "CacheEffectivenessWarning"; } } module.exports = CacheEffectivenessWarning;