2014-06-03 14:45:26 +08:00
|
|
|
/*
|
|
|
|
MIT License http://www.opensource.org/licenses/mit-license.php
|
|
|
|
Author Tobias Koppers @sokra
|
|
|
|
*/
|
2018-07-30 23:08:51 +08:00
|
|
|
|
2016-12-29 15:10:25 +08:00
|
|
|
"use strict";
|
2014-06-03 14:45:26 +08:00
|
|
|
|
2019-10-02 14:54:21 +08:00
|
|
|
const util = require("util");
|
|
|
|
const memorize = require("./util/memorize");
|
2014-06-03 14:45:26 +08:00
|
|
|
|
2018-06-20 18:04:47 +08:00
|
|
|
/** @typedef {import("webpack-sources").Source} Source */
|
2018-07-24 23:35:36 +08:00
|
|
|
/** @typedef {import("./Chunk")} Chunk */
|
2018-08-14 17:18:22 +08:00
|
|
|
/** @typedef {import("./ChunkGraph")} ChunkGraph */
|
2019-10-02 14:54:21 +08:00
|
|
|
/** @typedef {import("./Compilation")} Compilation */
|
2018-07-24 23:35:36 +08:00
|
|
|
/** @typedef {import("./DependencyTemplates")} DependencyTemplates */
|
2018-06-20 18:04:47 +08:00
|
|
|
/** @typedef {import("./Module")} Module */
|
2018-07-24 23:35:36 +08:00
|
|
|
/** @typedef {import("./ModuleGraph")} ModuleGraph */
|
|
|
|
/** @typedef {import("./RuntimeTemplate")} RuntimeTemplate */
|
2019-07-17 22:02:33 +08:00
|
|
|
/** @typedef {import("./util/Hash")} Hash */
|
2018-07-24 23:35:36 +08:00
|
|
|
|
2019-10-02 14:54:21 +08:00
|
|
|
const getJavascriptModulesPlugin = memorize(() =>
|
|
|
|
require("./JavascriptModulesPlugin")
|
|
|
|
);
|
|
|
|
|
2018-07-24 23:35:36 +08:00
|
|
|
/**
|
|
|
|
* @typedef {Object} RenderContext
|
|
|
|
* @property {Chunk} chunk the chunk
|
|
|
|
* @property {DependencyTemplates} dependencyTemplates the dependency templates
|
|
|
|
* @property {RuntimeTemplate} runtimeTemplate the runtime template
|
|
|
|
* @property {ModuleGraph} moduleGraph the module graph
|
2018-08-14 17:18:22 +08:00
|
|
|
* @property {ChunkGraph} chunkGraph the chunk graph
|
2018-07-24 23:35:36 +08:00
|
|
|
*/
|
2018-06-20 18:04:47 +08:00
|
|
|
|
2019-10-02 14:54:21 +08:00
|
|
|
// TODO webpack 6: remove this class
|
2018-06-26 14:27:44 +08:00
|
|
|
module.exports = class ModuleTemplate {
|
2018-11-07 21:03:25 +08:00
|
|
|
/**
|
|
|
|
* @param {RuntimeTemplate} runtimeTemplate the runtime template
|
2019-10-02 14:54:21 +08:00
|
|
|
* @param {Compilation} compilation the compilation
|
2018-11-07 21:03:25 +08:00
|
|
|
*/
|
2019-10-02 14:54:21 +08:00
|
|
|
constructor(runtimeTemplate, compilation) {
|
2017-12-07 17:31:00 +08:00
|
|
|
this.runtimeTemplate = runtimeTemplate;
|
2019-10-02 14:54:21 +08:00
|
|
|
this.type = "javascript";
|
2018-07-30 20:25:40 +08:00
|
|
|
this.hooks = Object.freeze({
|
2019-10-02 14:54:21 +08:00
|
|
|
content: {
|
|
|
|
tap: util.deprecate(
|
|
|
|
(options, fn) => {
|
|
|
|
getJavascriptModulesPlugin()
|
|
|
|
.getCompilationHooks(compilation)
|
|
|
|
.renderModuleContent.tap(options, fn);
|
|
|
|
},
|
|
|
|
"ModuleTemplate.hooks.content is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
|
|
|
|
"DEP_MODULE_TEMPLATE_CONTENT"
|
|
|
|
)
|
|
|
|
},
|
|
|
|
module: {
|
|
|
|
tap: util.deprecate(
|
|
|
|
(options, fn) => {
|
|
|
|
getJavascriptModulesPlugin()
|
|
|
|
.getCompilationHooks(compilation)
|
|
|
|
.renderModuleContent.tap(options, fn);
|
|
|
|
},
|
|
|
|
"ModuleTemplate.hooks.module is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContent instead)",
|
|
|
|
"DEP_MODULE_TEMPLATE_MODULE"
|
|
|
|
)
|
|
|
|
},
|
|
|
|
render: {
|
|
|
|
tap: util.deprecate(
|
|
|
|
(options, fn) => {
|
|
|
|
getJavascriptModulesPlugin()
|
|
|
|
.getCompilationHooks(compilation)
|
|
|
|
.renderModuleContainer.tap(options, fn);
|
|
|
|
},
|
|
|
|
"ModuleTemplate.hooks.render is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModuleContainer instead)",
|
|
|
|
"DEP_MODULE_TEMPLATE_RENDER"
|
|
|
|
)
|
|
|
|
},
|
|
|
|
package: {
|
|
|
|
tap: util.deprecate(
|
|
|
|
(options, fn) => {
|
|
|
|
getJavascriptModulesPlugin()
|
|
|
|
.getCompilationHooks(compilation)
|
|
|
|
.renderModulePackage.tap(options, fn);
|
|
|
|
},
|
|
|
|
"ModuleTemplate.hooks.package is deprecated (use JavascriptModulesPlugin.getCompilationHooks().renderModulePackage instead)",
|
|
|
|
"DEP_MODULE_TEMPLATE_PACKAGE"
|
|
|
|
)
|
|
|
|
},
|
|
|
|
hash: {
|
|
|
|
tap: util.deprecate(
|
|
|
|
(options, fn) => {
|
|
|
|
compilation.hooks.fullHash.tap(options, fn);
|
|
|
|
},
|
|
|
|
"ModuleTemplate.hooks.package is deprecated (use Compilation.hooks.fullHash instead)",
|
|
|
|
"DEP_MODULE_TEMPLATE_HASH"
|
|
|
|
)
|
|
|
|
}
|
2018-07-30 20:25:40 +08:00
|
|
|
});
|
2016-12-29 15:10:25 +08:00
|
|
|
}
|
2017-01-11 17:51:58 +08:00
|
|
|
};
|