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