mirror of https://github.com/webpack/webpack.git
improvements
This commit is contained in:
parent
fb45e38fa4
commit
9915088cbc
|
|
@ -9,6 +9,7 @@ const RuntimeGlobals = require("./RuntimeGlobals");
|
|||
const Template = require("./Template");
|
||||
const propertyAccess = require("./util/propertyAccess");
|
||||
|
||||
/** @typedef {import("../declarations/WebpackOptions").OutputOptions} OutputOptions */
|
||||
/** @typedef {import("./AsyncDependenciesBlock")} AsyncDependenciesBlock */
|
||||
/** @typedef {import("./ChunkGraph")} ChunkGraph */
|
||||
/** @typedef {import("./Module")} Module */
|
||||
|
|
@ -25,7 +26,7 @@ const arrayEquals = (a, b) => {
|
|||
|
||||
class RuntimeTemplate {
|
||||
/**
|
||||
* @param {TODO} outputOptions the compilation output options
|
||||
* @param {OutputOptions} outputOptions the compilation output options
|
||||
* @param {RequestShortener} requestShortener the request shortener
|
||||
*/
|
||||
constructor(outputOptions, requestShortener) {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class AssetJavascriptGenerator extends Generator {
|
|||
* @returns {Source} generated code
|
||||
*/
|
||||
generate(module, { chunkGraph, runtimeTemplate, runtimeRequirements }) {
|
||||
const filename = module.resource;
|
||||
const filename = module.nameForCondition();
|
||||
const { assetModuleFilename } = runtimeTemplate.outputOptions;
|
||||
const url = this.mainTemplate.getAssetPath(assetModuleFilename, {
|
||||
module,
|
||||
|
|
@ -67,12 +67,9 @@ class AssetJavascriptGenerator extends Generator {
|
|||
* @returns {number} estimate size of the module
|
||||
*/
|
||||
getSize(module, type) {
|
||||
const originalSource = module._cachedSources.get("javascript").source;
|
||||
|
||||
if (!originalSource) {
|
||||
return 0;
|
||||
}
|
||||
return originalSource.size();
|
||||
// it's only estimated so this number is probably fine
|
||||
// Example: m.exports=r.p+"0123456789012345678901.ext"
|
||||
return 42;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
"use strict";
|
||||
|
||||
const Generator = require("../Generator");
|
||||
const RuntimeModule = require("../RuntimeModule");
|
||||
const { compareModulesById } = require("../util/comparators");
|
||||
const AssetGenerator = require("./AssetGenerator");
|
||||
const AssetJavascriptGenerator = require("./AssetJavascriptGenerator");
|
||||
|
|
@ -24,11 +23,7 @@ const AssetParser = require("./AssetParser");
|
|||
const type = "asset";
|
||||
const plugin = "AssetModulesPlugin";
|
||||
|
||||
class AssetModulesPlugin extends RuntimeModule {
|
||||
constructor() {
|
||||
super("url");
|
||||
}
|
||||
|
||||
class AssetModulesPlugin {
|
||||
/**
|
||||
* @param {Compiler} compiler webpack compiler
|
||||
* @returns {void}
|
||||
|
|
@ -51,7 +46,7 @@ class AssetModulesPlugin extends RuntimeModule {
|
|||
compilation.mainTemplate.hooks.renderManifest.tap(
|
||||
plugin,
|
||||
(result, options) => {
|
||||
const { mainTemplate, chunkGraph, moduleGraph } = compilation;
|
||||
const { chunkGraph, moduleGraph } = compilation;
|
||||
const {
|
||||
chunk,
|
||||
moduleTemplates,
|
||||
|
|
@ -75,9 +70,7 @@ class AssetModulesPlugin extends RuntimeModule {
|
|||
chunk,
|
||||
chunkGraph,
|
||||
moduleGraph,
|
||||
mainTemplate,
|
||||
dependencyTemplates,
|
||||
outputOptions,
|
||||
runtimeTemplate
|
||||
}),
|
||||
filenameTemplate,
|
||||
|
|
@ -99,15 +92,10 @@ class AssetModulesPlugin extends RuntimeModule {
|
|||
);
|
||||
}
|
||||
|
||||
/* eslint-disable valid-jsdoc */
|
||||
// not compatible with Intersection
|
||||
/**
|
||||
* @typedef {{outputOptions: TODO}} OutputOptionsType
|
||||
* @typedef {{mainTemplate: MainTemplate}} MainTemplateType
|
||||
* @typedef {RenderContext & MainTemplateType & OutputOptionsType} RenderContextType
|
||||
* @param {Module} module the module to render
|
||||
* @param {ModuleTemplate} moduleTemplate the module template
|
||||
* @param {RenderContextType} renderContext the render context
|
||||
* @param {RenderContext} renderContext the render context
|
||||
* @returns {Source} the rendered source
|
||||
*/
|
||||
/* eslint-enable */
|
||||
|
|
|
|||
|
|
@ -141,9 +141,9 @@ Built at: 1970-04-20 12:42:42
|
|||
c9fc77a744ca46b7fe30.jpg 10.9 KiB {179} [emitted] main
|
||||
Entrypoint main = bundle.js c9fc77a744ca46b7fe30.jpg 2971bea717d1ea440379.png 44af8fe384aadccba06e.svg
|
||||
[10] ./index.js 111 bytes {179} [built]
|
||||
[359] ./images/file.jpg 10.9 KiB (asset) 68 bytes (javascript) {179} [built]
|
||||
[440] ./images/file.png 25.9 KiB (asset) 68 bytes (javascript) {179} [built]
|
||||
[811] ./images/file.svg 656 bytes (asset) 68 bytes (javascript) {179} [built]
|
||||
[359] ./images/file.jpg 10.9 KiB (asset) 42 bytes (javascript) {179} [built]
|
||||
[440] ./images/file.png 25.9 KiB (asset) 42 bytes (javascript) {179} [built]
|
||||
[811] ./images/file.svg 656 bytes (asset) 42 bytes (javascript) {179} [built]
|
||||
+ 4 hidden modules"
|
||||
`;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,5 @@
|
|||
module.exports = {
|
||||
mode: "development",
|
||||
output: {
|
||||
assetModuleFilename: "images/file[ext]"
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue