Tobias Koppers
ea609374f7
split Chunk.isInitial into isOnlyInitial and canBeInitial
...
remove includeInitial argument of getChunk(Module)Maps
2018-01-22 12:52:28 +01:00
Florent Cailhol
86e6edf1ab
Refactor how source type is handled by the parser
2018-01-22 09:30:43 +01:00
Tobias Koppers
b28435eb32
make default cache group explicit
...
add priority
using cacheGroups doesn't override default cache groups
2018-01-20 13:13:10 +01: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
Jeremy Greer
2ef4b0101e
Add support for sideEffects glob(s)
...
In addition to Booleans, the `sideEffects` value in a package can
identify child modules with side effects by a glob or Array of globs.
2018-01-18 13:29:22 -06:00
Tobias Koppers
114abeeb4d
fix merge issue
2018-01-18 11:31:38 +01:00
Tobias Koppers
af90de826c
Merge pull request #6236 from ooflorent/use_map_set
...
Replace dictionaries by Map or Set
2018-01-18 09:24:36 +01:00
Tobias Koppers
6437964207
Merge pull request #6291 from Iwouldliketobeapig/next
...
feat: CommonsChunkPlugin indexOf -> includes
2018-01-12 10:57:42 +01:00
dutao
9cbe4f19c5
fix: lint miss ;
2018-01-12 09:07:22 +08: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
7baf6aff08
Merge pull request #6281 from webpack/feature/auto-ccp
...
Add AutomaticCommonsChunksPlugin and config options and defaults
2018-01-11 11:15:26 +01:00
dutao
58cacb25a0
feat: indexOf -> includes
2018-01-11 17:25:00 +08:00
Tobias Koppers
d60a9f5288
Merge pull request #6287 from ooflorent/remove_dedupeplugin
...
Remove deprecated DedupePlugin
2018-01-10 23:59:50 +01: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
4b81320695
allow limit requests and chunk size
...
with defaults
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
Tobias Koppers
417044f065
add AutomaticCommonsChunksPlugin
...
enable it by default for async chunks
add options for initial chunks
2018-01-10 18:58:26 +01:00
Tobias Koppers
08cd2f0ffe
introduce ChunkGroup for AND in parents
2018-01-10 17:12:03 +01:00
Florent Cailhol
67f31aeebc
Remove deprecated DedupePlugin
2018-01-09 17:09:18 +01:00
Tobias Koppers
2cbd4685d3
Merge pull request #6250 from webpack/bugfix/json-concat
...
fix a bug with json modules in concatenated modules
2018-01-06 10:37:30 +01:00
Florent Cailhol
1590751da2
Replace dictionaries by Map or Set
2018-01-06 09:45:57 +01:00
Florent Cailhol
9f13bfec6c
Optimize chunk traversal in RemoveParentModulesPlugin
2018-01-05 22:49:55 +01:00
Tobias Koppers
87fdb61c0a
better names for interop properties
2018-01-05 22:35:54 +01:00
Tobias Koppers
bde926605c
fix a bug with json modules in concatenated modules
2018-01-05 22:27:42 +01:00
Florent Cailhol
9f9e730ff3
Use for-of loops instead of forEachModule
2018-01-04 23:15:32 +01:00
Tobias Koppers
53a1d6c7b5
replace harmonyModule flag with exportsType 3-state
...
exportsType falsy: It's non-harmony module
exportsType "namespace": It's a harmony module, the exports is the namespace object
exportsType "default": It's a harmony module, the exports is the default exports, named exports are properties of the default export
2017-12-22 19:42:41 +01:00
Tobias Koppers
2aac6badd5
move generated runtime code to RuntimeTemplate
2017-12-22 19:41:28 +01:00
Florent Cailhol
9669c9e013
Use Parser#hooks instead of Tapable#plugin
2017-12-21 09:08:10 +01:00
Tobias Koppers
2a1546d355
fix reversed order in OccurenceOrderPlugin
...
try to keep original order
fallback order by name if index order fails
2017-12-20 20:35:16 +01:00
Tobias Koppers
ba00d7495a
fix unnecessary module concatenation
...
allow to display nested modules in stats
2017-12-20 20:35:16 +01:00
Florent Cailhol
31e0c406b7
Bail out concatenation if module uses module.id or module.loaded
2017-12-19 10:08:43 +01:00
Tobias Koppers
27d60f7dd6
Merge pull request #6126 from ooflorent/remove_plugin_calls
...
Remove more plugin calls
2017-12-15 13:42:38 +01:00
Florent Cailhol
08ddad2e10
Replace NormalModuleFactory#plugin() calls
2017-12-14 14:42:49 +01:00
Florent Cailhol
f737b26260
Remove some plugin calls
2017-12-14 14:42:49 +01:00
Tobias Koppers
5cbd6b20dd
allow to set sideEffects from rules
2017-12-14 13:08:57 +01:00
Tobias Koppers
c64fd70ec4
Merge pull request #6123 from webpack/feature/minimize-production
...
Switch on minimizing in production mode by default
2017-12-14 01:01:24 +01:00
Tobias Koppers
2148f556a4
Enable minimizing in production mode
2017-12-14 00:06:56 +01:00
Tobias Koppers
cc63d51f6a
shorter code in concatenated module
2017-12-13 11:17:39 +01:00
Tobias Koppers
c68f224272
move providedExports into buildMeta
2017-12-12 17:01:03 +01:00
Tobias Koppers
ffb977fed4
refactor meta -> buildMeta, add factoryMeta
...
add compat layer to Module.meta
2017-12-12 16:57:50 +01:00
Tobias Koppers
758a388f69
pass runtimeTemplate to DependencyTemplate
...
move outputOptions and requestShortener into runtimeTemplate
2017-12-11 17:59:32 +01:00
Florent Cailhol
36c690d37f
Use tapable instead of 'plugin'
2017-12-08 14:23:31 +01:00
Tobias Koppers
dae9de6595
Merge branch 'next' into feature/validate-plugin-options
...
# Conflicts:
# lib/SourceMapDevToolPlugin.js
# lib/optimize/AggressiveSplittingPlugin.js
# yarn.lock
2017-11-28 09:59:59 +01:00
Tobias Koppers
aa212a61d0
Merge branch 'master' into next
...
# Conflicts:
# lib/optimize/ConcatenatedModule.js
2017-11-24 22:07:20 +01:00
Tobias Koppers
3e58966e3d
Merge pull request #6016 from webpack/performance/improvements
...
Performance improvements
2017-11-24 21:28:28 +01:00
Tobias Koppers
f1efe03b62
Merge pull request #6014 from webpack/performance/merge-duplicate-chunks
...
use a faster merge duplicate chunks algorithm
2017-11-24 21:28:03 +01:00
Tobias Koppers
5db5512849
faster RemoveParentModule algorithm
2017-11-24 18:14:37 +01:00
Tobias Koppers
46ae001d41
use a faster merge duplicate chunks algorithm
2017-11-24 18:10:48 +01:00
Tobias Koppers
c772e51f2d
Merge branch 'next' into eslint-scope
2017-11-24 07:58:23 +01:00
Tobias Koppers
9c25669e47
Merge pull request #6012 from webpack/feature/mjs-import-non-esm
...
process imports from mjs to non-esm correctly
2017-11-24 07:36:28 +01:00
wtgtybhertgeghgtwtg
fe46ac1356
Switch from `escope` to `eslint-scope`.
2017-11-23 16:47:01 -07:00
Joe Lencioni
37d70bd0c6
Avoid calling hash.update multiple times in ConcatenatedModules
...
@sokra did some profiling and it seems that calling crypto.update
multiple times is slower than calling it once with a large string.
> As explanation I would guess update calls into node.js C++ + OpenSSL
> while concatenating strings is very optimized in JIT.
To take better advantage of this information, I have rewritten this
performance-sensitive code to build up a concatenated string and then
hash it at the end.
Since we are thinking about performance here, I opted for a regular for
loop instead of using the forEach iterator. I also did some basic
benchmarking of string concatenation strategies and discovered that
separating out the addition of the extra space into its own
concatenation line instead of tacking it on to the end of a single
concatenation might just barely have the edge in terms of performance. I
think it is also very readable this way, so it seems like a good
tradeoff to make: a little lost conciseness for speed.
2017-11-23 08:31:16 -08:00
Joe Lencioni
8fdf411b84
Simplify identifier creation in ConcatenatedModules
...
This was implemented in #5997 to fix some memory issues, but I think we
can make this a little more efficient. By using a single forEach instead
of a map, filter, and join, we avoid unnecessary array creations and
iterations.
2017-11-23 07:47:18 -08:00
Tobias Koppers
21cdc84b71
process imports from mjs to non-esm correctly
...
give nice error messages when importing non-esm the wrong way
It also disallows using namespace object from non-esm modules
fixes #5686
2017-11-23 14:10:52 +01:00
Tobias Koppers
a0ef93f939
aggregate all crypto hash usages into util/createHash
...
try to avoid calling hash.update with short strings
2017-11-23 11:09:17 +01:00
Tobias Koppers
f55547ca6a
Merge branch 'master' into next
...
# Conflicts:
# lib/Compiler.js
2017-11-23 09:14:58 +01:00
Filipe Silva
aef6f19a60
Use shorter identifier for ConcatenatedModules
...
See https://github.com/webpack/webpack/issues/5992#issuecomment-346384896 for rationale.
Fixes #5992
2017-11-22 16:33:36 +00:00
Tobias Koppers
485c1673b0
fix typo: explaination -> explanation
2017-11-21 18:52:35 +01:00
Tobias Koppers
95407047c4
fix DllPlugin flagging
2017-11-21 13:09:32 +01:00
Tobias Koppers
5d78ba9c90
fix incorrect behavior of CommonsChunkPlugin
2017-11-21 12:56:33 +01:00
Tobias Koppers
2ff9b53754
Use StackedSetMap for better performance
2017-11-19 00:50:10 +01:00
Sergey Petushkov
cdd593b847
Rename schemas; Make imports less verbose
2017-11-12 09:48:08 +01:00
Sergey Petushkov
d73ad04c72
Add spaces to plugin names
2017-11-12 09:48:08 +01:00
Sergey Petushkov
1065a6e46c
Refactor plugins to use schema-utils; Remove unused
2017-11-12 09:48:08 +01:00
Sergey Petushkov
744dbe9b95
Add validations to plugins
2017-11-12 09:48:08 +01:00
Tobias Koppers
00f2b5ede7
advanced module type refactoring
...
added json type
.mjs default to javascript/esm type
adjusted parser plugins to react on module type
2017-11-11 19:27:19 +01:00
Tobias Koppers
41a1d602e1
added WebAssembly Proof of Concept
2017-11-10 09:17:11 +01:00
Tobias Koppers
860da9baaa
Merge branch 'next' into refactor/sets
2017-11-08 21:28:51 +01:00
Tobias Koppers
f7c2f8e470
Update code style to arrow functions
2017-11-08 11:56:01 +01:00
Tobias Koppers
447d85ad79
Merge branch 'next' into refactor/sets
...
# Conflicts:
# lib/ContextModule.js
# lib/NormalModule.js
# lib/optimize/ConcatenatedModule.js
2017-11-08 06:01:24 +01:00
Tobias Koppers
51c572c4f5
refactor more properties to Sets
2017-11-07 09:17:12 +01:00
Tobias Koppers
0339d4da49
Refactor weird things
...
* Declare used properties in constructor
* Module.(re)building moved into Compilation._(re)buildingModules (Map)
* Make NormalModule.error private
* Move Module.cacheable logic into needRebuild
* More stable implemention of rebuildModule
* addModuleChain waits for Module building finished before returning
* Set built and cacheable flags correctly in Modules
* More portableId into WeakMap
* Add ModuleReason for entrypoints
* cacheable can be true/false/null in Stats
* added Stats module issuerPath
* fixes profile in stats output
2017-11-06 13:16:09 +01:00
Tobias Koppers
814c894168
Merge branch 'master' into next
...
# Conflicts:
# lib/optimize/CommonsChunkPlugin.js
# test/statsCases/limit-chunk-count-plugin/expected.txt
# test/statsCases/named-chunks-plugin-async/expected.txt
# test/statsCases/optimize-chunks/expected.txt
2017-10-16 10:47:17 +02:00
Tobias Koppers
4960c5ba4e
cleanup CommonsChunkPlugins changes
2017-10-13 10:36:08 +02:00
Tobias Koppers
1bc572a385
rename side-effects to sideEffects
2017-10-12 17:32:41 +02:00
Tobias Koppers
4c2f9e724b
Merge branch 'master' into next
...
# Conflicts:
# lib/dependencies/HarmonyExportImportedSpecifierDependency.js
2017-10-12 11:28:25 +02:00
Tobias Koppers
5abd69680d
Merge branch 'master' into next
...
# Conflicts:
# lib/Compilation.js
# test/statsCases/optimize-chunks/expected.txt
2017-10-11 19:26:00 +02:00
Tobias Koppers
1381f6745b
fix crashes when imported module fails compiling
2017-10-11 17:22:11 +02:00
Tobias Koppers
03b0ff2c9c
Merge branch 'master' into next
2017-10-11 12:42:31 +02:00
Tobias Koppers
d9accb450c
Merge pull request #5764 from ljcrapo/commons-chunk-deep-children
...
Added deepChildren support from ArcEglos' pull request
2017-10-11 12:34:40 +02:00
Tobias Koppers
5a814c09d3
Merge branch 'master' into next
...
# Conflicts:
# lib/FunctionModuleTemplatePlugin.js
# lib/dependencies/HarmonyExportDependencyParserPlugin.js
# lib/dependencies/HarmonyExportImportedSpecifierDependency.js
# lib/dependencies/HarmonyModulesHelpers.js
# lib/optimize/ConcatenatedModule.js
# test/HarmonyModulesHelpers.test.js
2017-10-09 21:13:18 +02:00
Landon Crapo
87bff6cd98
fixed common-chunk-grandchildren example
...
* using set instead of array
* example of async use case
2017-10-09 10:29:38 -06:00
Tobias Koppers
9357ae0254
Refactor precendence rules for harmony exports for better performance
...
fixes #5763
2017-10-09 15:28:59 +02:00
Landon Crapo
4f9fc01be4
Added deepChildren support from ArcEglos' pull request and fixed failing tests
2017-10-05 15:31:29 -06:00
Tobias Koppers
f39e19a2e3
Merge pull request #5066 from webpack/deprecation/webpack-3
...
remove deprecated stuff
2017-09-22 19:47:23 +02:00
Tobias Koppers
b316bee0a6
Use SortableSets for Chunk.parents/blocks
2017-09-22 16:38:47 +02:00
Tobias Koppers
57e4a2d825
fix typo
2017-09-22 16:11:03 +02:00
Tobias Koppers
845c5f5031
Use Set for commonModules. Use getModules instead of modules
2017-09-22 15:44:16 +02:00
Tobias Koppers
6bd937d768
make things consitent
2017-09-22 14:07:28 +02:00
Tobias Koppers
6c1831ca21
Merge branch 'next' into use-set-in-chunks
2017-09-22 13:49:03 +02:00
Tobias Koppers
8f58eeeb81
Merge branch 'next' into feature/pure-module
...
# Conflicts:
# test/statsCases/commons-plugin-issue-4980/expected.txt
# test/statsCases/scope-hoisting-multi/expected.txt
# test/statsCases/tree-shaking/expected.txt
2017-09-15 11:15:45 +02:00
Tobias Koppers
2d84450fba
Merge pull request #3333 from webpack/feature/jsonp-to-push
...
change jsonp function to jsonp array push
2017-09-15 09:47:53 +02:00
Tobias Koppers
c383d5ea7f
rename `pure-module` to `side-effects`
2017-09-14 15:12:36 +02:00
Tobias Koppers
7ceac63f07
add support for pure modules
2017-09-14 09:44:42 +02:00
Tobias Koppers
5c489b6c5d
Refactor harmony modules
...
separate side effects from specifier
fixes TDZ for export let/const
bigger bundles are caused by correct export const/let behavior
BREAKING CHANGE: Internal have changed. Plugins could rely on them.
2017-09-14 09:44:32 +02:00
Tobias Koppers
90dc6394de
Merge branch 'next' into use-set-in-chunks
2017-09-14 09:25:45 +02:00
Tobias Koppers
7387c50c3a
change jsonp function to jsonp array push
2017-09-14 08:49:14 +02:00
Tobias Koppers
f83c913e53
Merge branch 'master' into refactor/cleanups
2017-09-06 09:39:28 +02:00