/
githubmirror
/
webpack
Обзор
Документация
Войти
/
githubmirror
/
webpack
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
lib/dll/DllEntryPlugin.js
80 строк
2 KB
Alexander Akait
refactor: annotate constructor fields with @type to improve type coverage (#21265)
24 июн 2026, 13:36
Не верифицирован
24 июн 2026, 13:36
e8f9334
Код
Авторство
О чём код?
/* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ "use strict"; const DllEntryDependency = require("../dependencies/DllEntryDependency"); const EntryDependency = require("../dependencies/EntryDependency"); const DllModuleFactory = require("./DllModuleFactory"); /** @typedef {import("../Compiler")} Compiler */ /** @typedef {import("../Entrypoint").EntryOptions} EntryOptions */ /** @typedef {string[]} Entries */ /** @typedef {EntryOptions & { name: string }} Options */ const PLUGIN_NAME = "DllEntryPlugin"; class DllEntryPlugin { /** * Creates an instance of DllEntryPlugin. * @param {string} context context * @param {Entries} entries entry names * @param {Options} options options */ constructor(context, entries, options) { /** @type {string} */ this.context = context; /** @type {Entries} */ this.entries = entries; /** @type {Options} */ this.options = options; } /** * Applies the plugin by registering its hooks on the compiler. * @param {Compiler} compiler the compiler instance * @returns {void} */ apply(compiler) { compiler.hooks.compilation.tap( PLUGIN_NAME, (compilation, { normalModuleFactory }) => { const dllModuleFactory = new DllModuleFactory(); compilation.dependencyFactories.set( DllEntryDependency, dllModuleFactory ); compilation.dependencyFactories.set( EntryDependency, normalModuleFactory ); } ); compiler.hooks.make.tapAsync(PLUGIN_NAME, (compilation, callback) => { compilation.addEntry( this.context, new DllEntryDependency( this.entries.map((e, idx) => { const dep = new EntryDependency(e); dep.loc = { name: this.options.name, index: idx }; return dep; }), this.options.name ), this.options, (error) => { if (error) return callback(error); callback(); } ); }); } } module.exports = DllEntryPlugin;