Commit Graph

389 Commits

Author SHA1 Message Date
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