1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.WebpackManifestPlugin = exports.getCompilerHooks = void 0;
- const path_1 = require("path");
- const webpack_1 = __importDefault(require("webpack"));
- const NormalModule_1 = __importDefault(require("webpack/lib/NormalModule"));
- const hooks_1 = require("./hooks");
- Object.defineProperty(exports, "getCompilerHooks", { enumerable: true, get: function () { return hooks_1.getCompilerHooks; } });
- const emitCountMap = new Map();
- const defaults = {
- assetHookStage: Infinity,
- basePath: '',
- fileName: 'manifest.json',
- filter: null,
- generate: void 0,
- map: null,
- publicPath: null,
- removeKeyHash: /([a-f0-9]{16,32}\.?)/gi,
- seed: void 0,
- serialize(manifest) {
- return JSON.stringify(manifest, null, 2);
- },
- sort: null,
- transformExtensions: /^(gz|map)$/i,
- useEntryKeys: false,
- useLegacyEmit: false,
- writeToFileEmit: false
- };
- class WebpackManifestPlugin {
- constructor(opts) {
- this.options = Object.assign({}, defaults, opts);
- }
- apply(compiler) {
- var _a, _b, _c;
- const moduleAssets = {};
- const manifestFileName = path_1.resolve(((_a = compiler.options.output) === null || _a === void 0 ? void 0 : _a.path) || './', this.options.fileName);
- const manifestAssetId = path_1.relative(((_b = compiler.options.output) === null || _b === void 0 ? void 0 : _b.path) || './', manifestFileName);
- const beforeRun = hooks_1.beforeRunHook.bind(this, { emitCountMap, manifestFileName });
- const emit = hooks_1.emitHook.bind(this, {
- compiler,
- emitCountMap,
- manifestAssetId,
- manifestFileName,
- moduleAssets,
- options: this.options
- });
- const normalModuleLoader = hooks_1.normalModuleLoaderHook.bind(this, { moduleAssets });
- const hookOptions = {
- name: 'WebpackManifestPlugin',
- stage: this.options.assetHookStage
- };
- compiler.hooks.compilation.tap(hookOptions, (compilation) => {
- const hook = !NormalModule_1.default.getCompilationHooks
- ? compilation.hooks.normalModuleLoader
- : NormalModule_1.default.getCompilationHooks(compilation).loader;
- hook.tap(hookOptions, normalModuleLoader);
- });
- if (((_c = webpack_1.default.version) === null || _c === void 0 ? void 0 : _c.startsWith('4')) || this.options.useLegacyEmit === true) {
- compiler.hooks.emit.tap(hookOptions, emit);
- }
- else {
- compiler.hooks.thisCompilation.tap(hookOptions, (compilation) => {
- compilation.hooks.processAssets.tap(hookOptions, () => emit(compilation));
- });
- }
- compiler.hooks.run.tap(hookOptions, beforeRun);
- compiler.hooks.watchRun.tap(hookOptions, beforeRun);
- }
- }
- exports.WebpackManifestPlugin = WebpackManifestPlugin;
- //# sourceMappingURL=index.js.map
|