Commit Graph

294 Commits

Author SHA1 Message Date
Tobias Koppers c80bae2959 faster cache access of contextify 2020-01-15 11:20:22 +01:00
Tobias Koppers 73978b1463 handle sourceRoot during source map contextify 2019-12-27 15:23:23 +01:00
Tobias Koppers 2f3da77d38 Introduce a Parser base class to improve Parser types
Parser.parse must be always sync
make JSON and WASM modules strict

fix inherit-types tooling to omit static methods
2019-11-30 01:36:28 +01:00
Tobias Koppers bf6680ec0f bugfixes, nitpicks 2019-11-26 21:24:41 +01:00
Tobias Koppers 317da38171 move data url condition to parser
avoid calling dataUrl function repeated
remove cache to avoid memory leak
include data url decision in module hash
refactor code for readablility
2019-11-26 15:43:58 +01:00
Sergey Melyukov bdc61abf82 refactor: merge generators in asset modules 2019-11-26 15:42:37 +01:00
Tobias Koppers 1cd9ec58aa track dependencies when calling resolve from loader 2019-11-25 22:10:47 +01:00
Tobias Koppers a58717e379 types for NormalModule constructor 2019-11-20 12:43:57 +01:00
Tobias Koppers 55914b2e46 Generator.generate may return null 2019-11-20 12:43:56 +01:00
Tobias Koppers b90f3e14a1 upgrade webpack-sources
make source maps and source names context independent

add enhanced-resolve declarations
add types to Module.build
fix tooling for import order to support import renaming
add support for concatenated modules in eval source maps
2019-11-12 08:59:08 +01:00
Tobias Koppers 5abf55b1af allocate presentationalDependencies array only when needed 2019-11-10 21:05:28 +01:00
Tobias Koppers c5483fa7ab allocate NormalModule._sourceSizes only when needed 2019-11-10 21:05:19 +01:00
Tobias Koppers ed81ad0fa4 allocate warnings and errors arrays only when needed 2019-11-10 21:05:16 +01:00
Tobias Koppers a877cd51d1 add presentational dependencies which are cheaper, but allow only templating 2019-10-30 07:49:20 +01:00
Tobias Koppers ac9fca474a avoid creating an object for performance reasons 2019-10-09 13:36:44 +02:00
Tobias Koppers ddc3dae0e6 refactor Module.source() and Module.getRuntimeRequirements() into Module.codeGeneration
add code generation phase to Compilation
add `output.iife` options to remove iife wrapper
add `experiments.outputModule` which enabled `output.module`
add `output.module` which sets defaults to `output.iife: false`, `output.libraryTarget: "module"`, `output.jsonpScriptType: "module"`, `terserOptions.module: true`
add `output.module` example
improve runtime requirements needed by ConcatenatedModule
add entry inlining, which inlines entry module code into runtime scope (only when safe)
make whole bundle strict when all modules are strict
2019-10-08 23:59:48 +02:00
Tobias Koppers e116d18544 Merge tag 'v4.40.3' into next
4.40.3
2019-09-25 23:51:38 +02:00
Daniel Playfair Cal 2aef0b615b Memoize NormalModule.size() 2019-09-20 10:44:49 +10:00
Tobias Koppers 7bde43f47a Merge tag 'v4.40.0' into next
4.40.0
2019-09-13 11:12:26 +02:00
Tobias Koppers 758269e814 add emit/updateAsset to Compilation
add asset info with
* immutable for long term cache-able asset
* size for the asset size in bytes
* development for devtools
* hotModuleReplacement for HMR assets

show asset info in stats
2019-09-11 14:43:42 +02:00
Tobias Koppers e507392094 add output.ecmaVersion options to set emitted code style
fix a bug with prefetching initial chunks
InitFragments have get[End]Content methods which get a sourceContext
RuntimeModules have implicit chunk and compilation
changed default to `output.ecmaVersion: 2015`
2019-08-26 21:32:29 +02:00
Tobias Koppers e877e0ec91 Modules don't carry buildDependencies, they add them directly to compilation
buildDependencies should not be stored/cached as they are only effective when really build
2019-08-13 18:05:26 +02:00
Tobias Koppers 856235d76f track and config build dependencies 2019-08-12 23:07:41 +02:00
Tobias Koppers c17dfde7a8 Merge tag 'v4.37.0' into next
4.37.0
2019-07-24 10:51:04 +02:00
Tobias Koppers 677ccd90ea small fixes 2019-07-23 09:28:06 +02:00
Tobias Koppers d849160d3f add logging API
Plugins:
Compiler.getInfrastructureLogger(name)
Compilation.getLogger(name)

Loader:
this.getLogger([name])

API equal to console API with these methods:
error, warn, info, log, debug,
time, timeLog, timeEnd,
group, groupCollapsed, groupEnd,
profile, profileEnd,
clear
2019-07-18 17:13:40 +02:00
Tobias Koppers cac462cba8
Merge pull request #8983 from hiroppy/feature/url
add experimental Url support
2019-07-17 23:32:15 +02:00
Tobias Koppers 1d72a05fed Merge tag 'v4.36.0' into next
4.36.0
2019-07-17 16:02:33 +02:00
Tobias Koppers fb45e38fa4 rename url -> asset
remove experimental in favor of experiments.asset
2019-07-17 11:57:04 +02:00
Yuta Hiroto 8788add912 fix(TemplatedPathPlugin): keep compatibility with `.[ext]`
[ext] has `.` but file-loader is specified `[hash].[ext]` as default.
2019-07-17 11:46:37 +02:00
ikopeykin 27b1e17f5b createHash typescript 2019-07-10 14:06:36 +03:00
Tobias Koppers b2e7837288 replace Object.assign with object spread 2019-06-19 13:16:05 +02:00
Tobias Koppers 6db94536ad Merge tag 'v4.34.0' into next
4.34.0
2019-06-13 10:51:12 +02:00
Tobias Koppers 6f25c3bdbd
Merge pull request #9150 from cacheflow/show-loaders-used-when-module-parsing-fails
feat(NormalModule/ModuleParseError): Show loaders used from config when module parsing fails
2019-06-04 23:24:21 +02:00
Tobias Koppers 45582c51e7 avoid loading from rule set, simplify 2019-06-03 17:00:50 +02:00
Lex Alexander 1c6e7a9344 feat(NormalModule/ModuleParseError): Show loaders used from config when module parsing fails
-Closes #9025
2019-05-29 14:11:49 -07:00
Tobias Koppers db5a8a33d3 fix error handling on parse errors 2019-05-24 15:53:34 +02:00
Tobias Koppers abc825d58f Merge tag 'v4.32.0' into next
4.32.0
2019-05-20 14:46:31 +02:00
Tim Schaub 1a63d7bd0d
Default to production
Co-Authored-By: Tobias Koppers <tobias.koppers@googlemail.com>
2019-05-16 13:50:31 -06:00
Tim Schaub 290ab5d071
Allow loaders to access the mode 2019-05-16 10:18:16 -06:00
Tobias Koppers 0c39719729 avoid zero sized modules as they lead to problems 2019-05-13 12:29:29 +02:00
Florent Cailhol b12f24d20c Update hook types 2019-05-10 09:52:22 +02:00
Tobias Koppers 0e62bdb74a add missing cache 2019-01-19 13:12:43 +01:00
Tobias Koppers c5ad6df793 add own webpack-sources typings 2019-01-18 21:56:56 +01:00
Tobias Koppers e4d1a45c8d Use FileSystemInfo.createSnapshot for NormalModules too 2019-01-09 14:42:57 +01:00
Tobias Koppers ca430a6715 hash defaults to undefined
provide other properties in buildInfo
2018-12-31 12:50:45 +01:00
Tobias Koppers a3c166109e move NormalModule._buildHash into buildInfo 2018-12-31 12:28:57 +01:00
Tobias Koppers 1374757006 remove ModuleReason
remove HotUpdateChunkTemplate
move compareLocations into comparators
re-enable NodeSourcePlugin for `.mjs`
2018-12-20 16:38:26 +01:00
Tobias Koppers cc34ea42b0 add type argument to Module.size
add getSize to Generator
2018-12-05 20:18:59 +01:00
Tobias Koppers dff9278d6b add Module.getSourceTypes
getSourceTypes declares all source types which can be generated
Remove shouldRender in favor of source type testing
2018-12-05 20:18:57 +01:00
Tobias Koppers 0ff1a4f8f8 Merge tag 'v4.27.0' into next
4.27.0
2018-12-04 11:02:26 +01:00
Tobias Koppers 162da1c509 add getResolve method to loader context
with allows to pass options
2018-12-03 12:42:28 +01:00
Tobias Koppers 7c37a6a972 handle runtime requirements 2018-11-29 16:07:17 +01:00
Tobias Koppers 2525c8b7aa move runtime requirements storage into ChunkGraph
use info for function generation
for noParse default to module and exports requirements
2018-11-29 16:06:44 +01:00
Tobias Koppers c1e89c0543 Runtime requirement support in NormalModule, Generators and DependencyTemplate 2018-11-29 16:06:12 +01:00
Tobias Koppers 0232674f9c Initial runtime module work 2018-11-29 16:03:32 +01:00
Florent Cailhol 101b0ebb0f Add typings for JSON parser & deps 2018-11-23 21:52:05 +01:00
Tobias Koppers 23b335d902
Merge branch 'next' into types/modules 2018-11-16 14:40:11 +01:00
Florent Cailhol 3766869c48 Move normalModuleLoader hook 2018-11-12 14:26:32 +01:00
Florent Cailhol 23bd3d7bd4 Add type guard for NormalModule 2018-11-12 14:26:32 +01:00
Florent Cailhol caefde17ab Remove devtoolLineToLine and lineToLine options 2018-11-12 14:26:31 +01:00
Florent Cailhol 8a10ea3c92 Type 'apply' method of plugins 2018-11-12 14:26:31 +01:00
Florent Cailhol be8c6bbe71 Add types on module files 2018-11-07 14:03:25 +01:00
Tobias Koppers 4174521f9d remove unnecessary module arguments from module attached errors 2018-10-29 22:18:08 +01:00
Tobias Koppers 6a8e201521 fixup WebpackErrors 2018-10-25 10:52:28 +02:00
Tobias Koppers 83866b0dac use stable sorting for sorting dependencies 2018-10-23 11:32:32 +02:00
Tobias Koppers a852828279 add persistent caching prototype 2018-10-17 21:25:39 +02:00
Tobias Koppers 7340fbb547 refactor Cache
add a new hookable Cache class
removed CachePlugin
add MemoryCachePlugin
refactor timestamps
create FileSystemInfo class
2018-09-27 13:20:19 +02:00
Tobias Koppers 4eab41bd5f refactor Module.needBuild to be async 2018-09-27 11:20:54 +02:00
Tobias Koppers 554b417546 Modules are responsible for sorting of dependencies 2018-09-27 11:20:42 +02:00
Tobias Koppers 5b4cbb5ee0 add queues to Compilation
remove Semaphore and use AsyncQueue instead
deprecate Module.needRebuild, add Module.needBuild
remove Module.unbuild
add Module.invalidateBuild
2018-09-12 13:17:03 +02:00
Tobias Koppers 239ce7fcd9 Use ChunkGraph instead of Compilation in updateHash 2018-08-24 12:02:42 +02:00
Tobias Koppers 670502fc81 Move AsyncDependenciesBlock.chunkGroup into ChunkGraph 2018-08-22 20:17:49 +02:00
Tobias Koppers 3aa2280498 move Module.hash and .renderedHash into ChunkGraph 2018-08-22 19:24:54 +02:00
Tobias Koppers eb63cf80d6 move built flag into Compilation 2018-08-22 15:33:16 +02:00
Tobias Koppers a6e1c0693c add TODOs 2018-08-16 14:10:39 +02:00
Tobias Koppers 11e127d162 pass moduleGraph along with multiple methods 2018-08-02 17:54:42 +02:00
Tobias Koppers ec1329a7d4 make libIdent required
add types
2018-08-02 16:29:20 +02:00
Tobias Koppers 4ce109f8c1 change arguments of Generator.generate and Module.source into a object to be easier extensible
add JavascriptModulesPlugin.getHooks().shouldRender to decide if a module should be rendered
2018-08-02 16:07:29 +02:00
Tobias Koppers f68c1f7ab6 add additional arguments to updateHash 2018-08-02 16:04:10 +02:00
Tobias Koppers cf5f1d723c format existing code 2018-07-30 21:29:21 +02:00
Tobias Koppers 22c4756c9e add more types to Module 2018-07-25 12:38:34 +02:00
Tobias Koppers 0052861178 remove unconsistency with Module._source and originalSource 2018-07-25 12:20:35 +02:00
Tobias Koppers bc10939096 add types for Module and subclasses
better way to handle "optional" methods
2018-07-25 12:12:17 +02:00
Tobias Koppers 66d3f319a6 Merge tag 'v4.16.2' into next
4.16.2
2018-07-23 12:19:16 +02:00
Tobias Koppers 8614c75f11 run inherit types tool on existing code 2018-07-21 13:50:18 +02:00
Tobias Koppers ff7d0f56e7
Merge pull request #7704 from webpack/refactor/dependency-templates
make DependencyTemplates a new class
2018-07-12 19:11:58 +02:00
Tobias Koppers 568601c7fa remove `exec` from loader context
`require-from-string` can be used instead
2018-07-11 17:48:47 +02:00
Tobias Koppers e0abce0dd8 make DependencyTemplates a new class 2018-07-11 13:11:08 +02:00
Tobias Koppers fb2c24bf76 add `splitChunks.maxSize` option
add `splitChunks.fallbackCacheGroup`
add `splitChunks.hidePathInfo`
move `contextify` into utils
add some types
2018-07-04 10:45:02 +02:00
Tobias Koppers deb798d8a7 add TODO comment 2018-06-25 16:42:19 +02:00
Tobias Koppers 41343d1763 add TODO comments 2018-06-25 16:18:21 +02:00
Sean Larkin c3ebef7f25
Merge branch 'master' into feature/type-compiler-compilation-save 2018-06-21 11:07:33 +03:00
Tobias Koppers 6a7e79a443 Convert non-Error errors into Errors 2018-06-05 13:41:00 +02:00
Tobias Koppers 1886ee0f3f improve final loader not string/buffer message
add test case
2018-06-05 11:58:10 +02:00
Tobias Koppers 9fbe914078 Merge branch 'master' into feature/module-build-error-with-loader-name
# Conflicts:
#	lib/ModuleBuildError.js
#	lib/ModuleError.js
#	lib/ModuleWarning.js
2018-06-05 10:23:00 +02:00
Ma Cheng e68d83e8c7
Fix Typo 2018-06-02 17:41:35 +08:00
Ma Cheng 957ee2a63e
Merge branch 'master' into feature/module-build-error-with-loader-name 2018-06-02 17:19:16 +08:00
Tobias Koppers 530e1fb172 Add matchResource feature (for loaders)
Match rules with custom resource name
Also use this name as rule.issuer or splitChunks test
Show nicely in stats
2018-06-01 15:37:17 +02:00
Sean Larkin 1bae93852a
Merge branch 'master' into feature/type-compiler-compilation-save 2018-05-30 19:35:36 -07:00