Commit Graph

291 Commits

Author SHA1 Message Date
Tobias Koppers 6477ca56f8 Split options defaulting in normalization and defaults
Apply defaults after plugins are applied to allow plugins to feature their own defaults.
This allows to make preset plugins.
2020-02-17 19:12:54 +01:00
lilililee 311f196219
refactor(target): remove unnecessary judgment
options.target must be string or function, otherwise will throw WebpackOptionsValidationError when run webpack(options) .
2019-12-30 16:12:59 +08:00
Tobias Koppers 6b9d510612 refactor chunk prefetching/preloading into separate plugin and runtime modules 2019-12-19 12:01:46 +01:00
Sergey Melyukov 9bca2286ed opt-out inner graph optimization when eval is used 2019-12-16 16:49:01 +03:00
Tobias Koppers 782e4535ac Refactor how exportsType work
add flagged exportsType for __esModule flagged
add getExportsType to merge strict with exportsType
move CommonJsStuffPlugin into CommonJsPlugin
split CommonJsPlugin into imports and exports part
enable minimal tree shaking for CommonJs imports and exports
2019-12-06 11:13:08 +01:00
Tobias Koppers cda629eaac add missing runtime requirement for async module header
active async modules when top level await is used
2019-11-19 13:11:23 +01:00
Kashyap 96ad1c65a6 fix: Remove minor typo in WebpackOptionsApply 2019-11-04 13:05:59 +05:30
evilebottnawi 8198ffb3e6 refactor: code 2019-10-22 00:14:05 +02:00
Tobias Koppers 87abd00c6e remove all options for cache.store expect "pack"
these are incomplete and may be readded later
2019-10-21 09:22:38 +02:00
Tobias Koppers dd2c4de1ce use SourceMapDevTool default 2019-10-18 15:09:34 +02:00
evilebottnawi c81ffbef42 refactor: `devtool` option 2019-10-18 14:43:21 +02:00
Tobias Koppers b05a76eaf4 lazy evaluate in WebpackOptionsApply 2019-10-09 13:44:39 +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 ccc53dba5e update deprecated usage in library-related plugins 2019-10-08 23:46:31 +02:00
Tobias Koppers 69a545c444 Deprecate MainTemplate, ChunkTemplate, ModuleTemplate
move logic and hooks to JavascriptModulesPlugin
2019-10-08 23:46:26 +02:00
Tobias Koppers 2e37731988 add analysis for top level symbols, exports and imports
integrates the work of Vincent Chan for GSoC 2018

Co-authored-by: Vincent Chan <cdzos97@gmail.com>
2019-09-03 14:18:40 +02:00
Tobias Koppers 31b869616e
Merge pull request #9620 from webpack/feature/exports-info
add `__webpack_exports_info__` API to allow export introspection
2019-08-22 18:13:25 +02:00
Tobias Koppers fb13b76b34 add `__webpack_exports_info__` API to allow export introspection
improve usage/provide information for nested exports

improve tests for deep exports
2019-08-22 16:59:37 +02:00
Tobias Koppers a2caa36b8e add immutablePaths next to managedPaths for paths in the yarn cache
for PnP support
2019-08-20 14:50:07 +02:00
Tobias Koppers e5cecdad23 store build dependencies snapshot in pack
add snapshot shortcut for package manager managed paths
add cache.managedPaths
2019-08-13 17:02:37 +02:00
Tobias Koppers 856235d76f track and config build dependencies 2019-08-12 23:07:41 +02:00
Tobias Koppers f236df1bc9 replace logging in persistent caching with infrastructure logger
remove cache.loglevel
2019-08-12 13:41:23 +02:00
Tobias Koppers d2181eeffa pass missing idleTimeout options to CachePlugin 2019-07-26 13:59:15 +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 c9aa09439e fxiup! feedback 2019-07-17 11:47:14 +02:00
Yuta Hiroto ad51d66e95 feat(WebpackOptions): add default value and set UrlModulesPlugin
default: [hash].[ext]
2019-07-17 11:46:25 +02:00
Tobias Koppers b2e7837288 replace Object.assign with object spread 2019-06-19 13:16:05 +02:00
Tobias Koppers e9c0d068dd refactor filesystem interfaces
add Compiler.intermediateFileSystem
avoid using `path` and `fs` module when possible
move `join`, `mkdirp` and `dirname` into utils
join and dirname is optional in FileSystem interface
remove mkdirp from Filesystem interface
2019-06-11 17:32:58 +02:00
Tobias Koppers 12a3e7c854 create experiments for importAwait importAsync and (a)syncWebAssembly 2019-06-05 13:32:22 +02:00
Tobias Koppers faa56f1751 move plugin into folder 2019-06-05 12:07:20 +02:00
Tobias Koppers 1977cb1036 move async module flag to ModuleGraph 2019-06-05 11:15:25 +02:00
Tobias Koppers de61023616 add side-by-side wasm support based on async modules
type: "webassembly/async-experimental"
remove i64 importing limitation since it will have BigInt integration eventually
update wasm example
2019-06-04 23:28:56 +02:00
Tobias Koppers 09f2fa7273 Merge tag 'v4.33.0' into next
4.33.0
2019-06-04 23:23:25 +02:00
OJ Kwon 2ec75c1cdb
feat(target): support electron preload async chunk loading 2019-05-25 18:02:00 -07:00
Tobias Koppers 14d95e30cb Merge tag 'v4.32.1' into next
4.32.1
2019-05-22 13:36:26 +02:00
Tobias Koppers 5b08ab51c3 fixes #9156
node: false should not disable CommonJs features
2019-05-22 08:03:44 +02:00
Tobias Koppers b34da271a1 add sync mode for chunk dependency startup in sync node target
fixes #9154

allow nesting webpack bundles (rename inner __webpack_require__)
to allow testing this
2019-05-20 22:53:58 +02:00
Tobias Koppers abc825d58f Merge tag 'v4.32.0' into next
4.32.0
2019-05-20 14:46:31 +02:00
Tobias Koppers f03c4f127a improve merging of resolve and parsing options
by rules and via loader API

Objects are deeply merged
Arrays overwrite by default, but can reference old value with "..."

fixes #8968
2019-05-13 15:30:10 +02:00
Tobias Koppers b66143f706 Merge tag 'v4.30.0' into next
4.30.0
2019-05-09 21:34:28 +02:00
Alan Zhang 269efb9fd7 Never apply NodeStuffPlugin when "node" set to false 2019-04-24 10:40:51 +08:00
Igor Osipov cff0e18ec7 Make lazy loading for modules at WebpackOptionApply.js 2019-03-22 22:28:15 +03:00
Tobias Koppers 7ed1a8f88d
Merge pull request #8890 from timneutkens/add/option-to-disable-amd
Allow options.amd to disable AMDPlugin/RequireJsStuffPlugin
2019-03-15 09:45:54 +01:00
Connor Davis bf020dfe7b
Do the same for the rest of the plugins 2019-03-11 16:26:05 -05:00
Connor Davis 23687c6336
Only require if needed 2019-03-11 16:18:50 -05:00
Tim Neutkens 001960600d Run yarn fix 2019-03-10 17:13:53 +01:00
Tim Neutkens d02817619f Allow options.amd to disable AMDPlugin/RequireJsStuffPlugin
Introduces a new value `false` for `options.amd` that disables AMD support completely.

This would mainly be useful in for example ncc, Next.js etc where it’s either fully commonjs/esmodules (ncc) or fully esmodules (Next.js)
2019-03-10 16:31:35 +01:00
Tobias Koppers 180f912493 Merge tag 'v4.29.2' into next
4.29.2
2019-02-06 15:37:11 +01:00
Tobias Koppers b25ff237bb Prettify source code 2019-02-05 10:08:45 +01:00
Tobias Koppers 6fc0b96c9c add MangleExportsPlugin and options 2019-01-31 11:41:30 +01:00
Tobias Koppers 7c0d845af3 Refactor FileCachePlugin into multiple modules 2019-01-25 19:21:45 +01:00
Tobias Koppers 0f7355e170 Merge tag 'v4.28.4' into next
4.28.4
2019-01-10 16:51:17 +01:00
Tobias Koppers f446bf8a9b add ability to load dependent chunks for non-web targets
This allows to use `splitChunks` for initial chunks in i. e. node and webworker targets
2018-12-29 12:48:59 +01:00
Tobias Koppers d8ab512c34 Merge pull request #8565 from NaviMarella/ProfilingPlugin_8503
Fixed error in Profiling Plugin, if given folder path doesn't exist.
2018-12-29 04:47:17 -05:00
Tobias Koppers 77c2e61a31 remove memory cache from FileCachePlugin
support layers of caches
2018-12-27 20:57:54 +01:00
Tobias Koppers 123b0a64e7 add plugin system for Stats presets, defaults, creation and printing 2018-12-18 22:07:14 +01:00
Florent Cailhol 9caaa664f7 Refactor webpack main 2018-12-09 15:32:03 +01:00
Tobias Koppers ca46218787 add defaults for deterministic id plugins 2018-12-07 14:47:25 +01:00
Tobias Koppers 8281667668 improve ids for Long Term Caching
add deterministic chunk ids and make it default
StatsTestCases no longer need to explicitly use natural ids as the defaults are deterministic now too
add concept of id name hints for chunks
add `idHint` option to splitChunks to provide a hint
deduplicated code from different id plugins to IdHelpers
improve behavior of named ids in case of conflicts
remove `name: true` and `automaticNamePrefix` from splitChunks it's not as good as expected
improve named chunk ids to show root modules
2018-12-07 12:26:35 +01:00
Tobias Koppers f753f92c28 ensureChunk to RuntimeModule
step 1: non HMR cases
2018-11-29 16:16:39 +01:00
Tobias Koppers 7c37a6a972 handle runtime requirements 2018-11-29 16:07:17 +01:00
Florent Cailhol caefde17ab Remove devtoolLineToLine and lineToLine options 2018-11-12 14:26:31 +01:00
Tobias Koppers 2688b5b17f add resolver cache 2018-10-30 15:43:26 +01:00
Tobias Koppers a852828279 add persistent caching prototype 2018-10-17 21:25:39 +02:00
Florent Cailhol 7669104f71 Deprecate moduleIds=hashed in favor of moduleIds=deterministic
Also remove moduleIds=total-size
2018-10-12 17:14:16 +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 17044bf9c6 Merge tag 'v4.20.0' into next
4.20.0
2018-09-25 16:20:42 +02:00
Tobias Koppers d48975c948 use types from schema 2018-09-21 11:04:19 +02:00
Tobias Koppers 56c613a669 add moduleIds deterministic for simpler long term caching 2018-09-18 17:49:19 +02:00
Tobias Koppers b4860ccebb refactor chunk id plugins 2018-09-05 14:28:52 +02:00
Tobias Koppers 4d7b5b3b5e Refactor module id plugins to be independent 2018-09-03 20:45:44 +02:00
Florent Cailhol 8fda6a562e Add NaturalModuleIdsPlugin 2018-09-03 20:12:55 +02:00
Tobias Koppers cf5f1d723c format existing code 2018-07-30 21:29:21 +02:00
Florent Cailhol 0448c1c338 Use chunkIds and moduleIds 2018-07-14 21:59:42 +02:00
Tobias Koppers 9f0056b10d
Merge pull request #7686 from webpack/feature/module-chunk-ids-option
add new options moduleIds and chunkIds
2018-07-10 10:19:03 +02:00
Tobias Koppers 3fc4eb752f add new options moduleIds and chunkIds
deprecate namedModules, hashedModuleIds, namedChunks
add a lot of TODOs for webpack 5
split OccurenceOrderPlugin into separate plugins for modules and chunks
add NaturalChunkOrderPlugin and enable it in development
2018-07-09 15:06:19 +02:00
zroug b892065db0 Added support for WebAssembly modules when target is `electron-renderer` 2018-07-09 14:39:48 +02:00
Tobias Koppers 39d0bcb595
spacings 2018-06-07 14:22:35 +02:00
Tobias Koppers 5c604f93f6
Merge branch 'master' into feat-implement-option-for-hashed-module-ids-plugin 2018-06-07 14:21:09 +02:00
Mrkou47 d6d7119778 change variable defined identifier let to const 2018-06-07 14:37:08 +08:00
Tobias Koppers 8e3be48da4 allow to disable wasm import mangle
disable it by default (temporary)
2018-06-05 23:49:02 +02:00
Tobias Koppers 78b31936c3 add checkWasmTypes flag, enabled it only in production 2018-06-04 20:14:08 +02:00
Sven SAULEAU 928d051aae
Merge remote-tracking branch 'upstream/master' into fix-wasm-check-for-invalid-signatures 2018-05-30 15:31:31 +02:00
Sven SAULEAU fbd9d0d3a8
feat(wasm): add finalizer for checking exports 2018-05-30 12:45:05 +02:00
Florent Cailhol 2a9452e51b Add brackets for multiline if/for statements 2018-05-29 15:45:44 +02:00
evilebottnawi c222a6f33b feat: implement option for `HashedModuleIdes` plugin 2018-05-25 16:41:20 +03:00
Tobias Koppers 82a71be1dc Cleanup, refactoring, types 2018-04-27 18:53:07 +02:00
Tobias Koppers d91caea860 Pretty files for updated prettier version 2018-04-26 20:14:45 +02:00
Florent Cailhol eebf0866a9 Use correct function arity 2018-04-04 08:53:58 +02:00
Florent Cailhol f1092ad516 Update prettier toolchain 2018-03-26 16:56:10 +02:00
Tobias Koppers 5238159d21 run prettier on existing code 2018-02-25 02:00:20 +01:00
EugeneHlushko 9cf9e3e2b3 Bugfix #6051: add `original-fs` to externals for electron targets 2018-02-18 13:27:46 +02:00
Tobias Koppers 9599e4eb61 fix typo: mergedDuplicateChunks -> mergeDuplicateChunks 2018-02-13 12:41:30 +01:00
Ben Rothman c26c872bb2 add "single" option to RuntimeChunkPlugin 2018-01-26 22:03:56 -06:00
Tobias Koppers 18ae73dad4 Refactor chunk graph
Chunks are now always in ChunkGroups
ChunkGroups have parents and children, Chunks no longer have this
AsyncDependenciesBlocks point to a ChunkGroup instead of a list of chunks
Entrypoint is now a ChunkGroup (extends from it)
move stuff graph modification methods into GraphHelpers
Change chunk id recording to source-based
Chunks have parents, siblings and children in Stats
rename AutomaticCommonsChunksPlugin to SplitChunksPlugin
add request property to origin (ChunkGroup)
remove moveToParent from AggressiveMergingPlugin
fix issues with AggressiveSplittingPlugin
remove CommonsChunkPlugin
add optimization.runtimeChunk (RuntimeChunkPlugin)
fix a filename bug for initial chunks
remove extract-text-webpack-plugin from test suite
add DebugHash to help debugging hash issues
fix issues with entry modules in different chunk as runtime
redo optimization.splitChunks options
Compilation.entrypoints is now a Map
Compilation.chunkGroups has been added
remove some unittests
update examples
update tests with CommonsChunkPlugin
2018-01-19 19:21:30 +01:00
Tobias Koppers 7112943ca4
Merge pull request #6298 from EugeneHlushko/refactor/indexof-to-includes
Refactor/indexof to includes
2018-01-11 22:45:02 +01:00
EugeneHlushko 2aab060f26 Refactor: indexOf >< checks to includes 2018-01-11 18:58:39 +02:00
Tobias Koppers acdabb1427 linting, comment and minor improvements 2018-01-10 19:22:25 +01:00
Tobias Koppers 85acfeb1c2 allow to use new options minSize, maxRequests 2018-01-10 18:58:27 +01:00
Tobias Koppers b34663cb2d add more config options
fix bugs
2018-01-10 18:58:27 +01:00