Commit Graph

576 Commits

Author SHA1 Message Date
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
Tobias Koppers af470a504e handle inner non-harmony dependencies correctly in ConcatenatedModule
add async as keyword

fixes #5604
fixes #5615
2017-09-04 14:09:55 +02:00
Tobias Koppers 6bdd9dca87 Merge pull request #5535 from webpack/bugfix/incremental-concat-compat
set compatiblity flag correctly even after incremental build
2017-08-16 15:21:04 +02:00
Tobias Koppers c5deb595c5 set compatiblity flag correctly even after incremental build
fixes #5510
2017-08-16 14:59:09 +02:00
Tobias Koppers 99c2706ed3 Ensure that graph structure stay consistent
fixes #5527
2017-08-16 14:05:06 +02:00
Tobias Koppers 0ea37a5485 Disallow Scope Hoisting when using HMR
fixes #5504
2017-08-12 11:00:55 +02:00
Tobias Koppers e5f4eb147a Merge branch 'master' into refactor/cleanups 2017-08-12 10:03:51 +02:00
kisenka 3d272aceea fix: restore `modules` property of ConcatenatedModule (fixes #5477) 2017-08-12 01:01:50 +03:00
kisenka 7a36951aa8 Merge branch 'master' of https://github.com/webpack/webpack into concatenated-module-in-3.5-compat 2017-08-12 00:58:43 +03:00
Tobias Koppers 0e73a2458a also generate a new identifier for interop name
fixes #5481
2017-08-10 12:14:31 +02:00
kisenka 438fd14ae5 fix: restore backwards compatibility of ConcatenatedModule (fixes #5477) 2017-08-10 00:23:40 +03:00
Tobias Koppers bc67522c74 fixes stack overflow with circular dependencies
fixes #5462
2017-08-09 10:31:01 +02:00
Tobias Koppers b05b49b0f0 fix invalid generated code with scope hoisting and non-number ids 2017-08-08 13:09:47 +02:00
Tobias Koppers 91bfd4559a move pathinfo comment into Template helper function
change toIdentifier to generate less underscores
2017-08-08 09:42:43 +02:00
Tobias Koppers 0b8023a106 fixes #5096 2017-08-08 08:15:18 +02:00
Tobias Koppers 7619c43d26 generate more pretty names for nested concatenation 2017-08-07 21:21:53 +02:00
Tobias Koppers 6607cfa4bd remove ordering in ModuleConcatenationPlugin 2017-08-07 20:33:47 +02:00
Tobias Koppers 9f5bffaa61 beautify 2017-08-07 16:15:49 +02:00
Tobias Koppers 334c1c49aa remove unused variable 2017-08-07 16:05:17 +02:00
Tobias Koppers 8835751cb3 fix conflict handling
remove unused code
2017-08-07 15:43:17 +02:00
Tobias Koppers b77a52b43a add reserved words to avoid syntax errors 2017-08-07 14:47:45 +02:00
Tobias Koppers 16a5831620 use old new Buffer api for node 4 2017-08-07 14:39:07 +02:00
Tobias Koppers 2be9c526e4 better names, added export comment 2017-08-07 14:38:54 +02:00
Tobias Koppers a553c3d15d tests and fixes 2017-08-07 14:12:31 +02:00
Tobias Koppers 795f6fcbba fix remaining issues and edge cases 2017-08-07 13:56:50 +02:00
Tobias Koppers abff6b7805 use all imports in a concatenated module 2017-08-07 13:19:24 +02:00
Tobias Koppers ec3aa7be5d Fix import order 2017-08-07 11:53:07 +02:00
Tobias Koppers 907cd16595 fix a bug that prevented the automatic chunk selection to select initial chunks
fixes #5145
fixes #5386
fixes #5285
fixes #5109
2017-07-27 14:32:35 +02:00
Tobias Koppers 32264b8187 Merge branch 'master' into feature/improve-module-concat-bailout-messages 2017-07-25 13:50:53 +02:00
Tobias Koppers 35c8097b6a Make sure it's a real module when choosing for ModuleConcatenation
fixes #5095
2017-07-25 12:53:54 +02:00
Tobias Koppers 42af3d28df Merge pull request #5347 from webpack/cleanup/aggressive-splitting
aggressive-merging-plugin: refactor for more readability
2017-07-24 12:56:36 +02:00
Tobias Koppers 991b360c90 fix useless-escape linting issues 2017-07-24 11:54:06 +02:00
Tobias Koppers 05b913a92c cleanup messages and added more info 2017-07-24 10:29:08 +02:00
Tobias Koppers 2949c598d5 refactor for more readablity 2017-07-24 10:04:55 +02:00
Tobias Koppers a167a7ecf5 allow to use default export of root module in concatenated module in inner modules
better error messages when parsing fails

fixes #5314
#5304
2017-07-21 23:32:47 +02:00
Tobias Koppers 2b0943f618 Merge pull request #5312 from webpack/performance/aggressive-splitting
performance improvements and comments
2017-07-18 15:11:24 +02:00
Tobias Koppers 6fc72dc4cc Merge pull request #5309 from probablyup/optimizations
refactor: reduce array allocations, remove some excess iterations
2017-07-18 14:25:12 +02:00
Tobias Koppers 64c1e8a23a performance improvements and comments 2017-07-18 14:24:42 +02:00
Tobias Koppers f6a0d51e6b Merge branch 'master' into use-set-in-chunks 2017-07-18 09:32:53 +02:00
asolove 3f1b7e624c Store relative path cache on compilation to avoid leaking memory. 2017-07-17 23:06:59 -06:00
Evan Scott 529b0ffe94 refactor: use array.find vs array.filter()[0] 2017-07-17 22:19:35 -04:00
Tobias Koppers c1a02446ac store hash in depndencyTemplates Map instead of comparing identify
This restores original performance on incremental builds

fixes #5289
fixes #5277
2017-07-14 13:03:30 +02:00
Tobias Koppers 6842d50cf9 Call imports with the correct context.
Parse arguments of an import call.
Support strictThisContextOnImports in ConcatenatedModules

fixes #5246
fixes #5135
fixes #5111
2017-07-11 19:08:23 +02:00
Tobias Koppers 4e90f43596 add hash method to concatenated module
fixes #5184
2017-07-07 11:48:52 +02:00
Tobias Koppers a6e4cddb79 Merge pull request #5137 from mzgoddard/concatenated-file-dependencies
Include module file and context dependencies in ConcatenatedModule
2017-07-01 14:51:07 +02:00
Johannes Ewald 15ccfb68ef
Improve ModuleConcatenation bailout messages 2017-06-28 15:20:06 +02:00
Tim Sebastian 66f0f6436a refactor commonsschunk plugin to handle set instead of array 2017-06-24 11:39:46 +10:00
Michael "Z" Goddard 9ea40f0eea
Include module file and context dependencies in ConcatenatedModule
As ModuleConcatenationPlugin removes the concatenated modules from a
compilation, the file and context dependencies of those modules needs
to be stored in the ConcatenatedModule for webpack to be able to watch
those paths.
2017-06-22 10:43:28 -04:00
jeonghwan Lee ab9e938367 Preserve assets from concatenated module 2017-06-22 12:32:59 +09:00
Tobias Koppers 2d82b00767 Merge pull request #5113 from webpack/feature/better-error-message
better error message for missing internal names
2017-06-21 23:23:25 +02:00
Tobias Koppers 25a904bf88 Merge pull request #5083 from timse/sortable-set
Sortable set
2017-06-21 22:50:47 +02:00
Tim Sebastian 8f3d65aa5d fix linting/formatting issues 2017-06-21 08:12:22 +10:00
Tim Sebastian f7ffed8f3e allow to set chunks and use it in ConcatenatedModule 2017-06-21 08:12:22 +10:00
Tobias Koppers 245dcc3047 better error message for missing internal names 2017-06-20 16:13:32 +02:00
Tobias Koppers 9feda63d13 Merge pull request #5028 from webpack/feature/externalize_uglify_plugin
feat(uglify): move uglify to external plugin from webpack-contrib
2017-06-19 17:04:27 +02:00
Tim Sebastian fc20348f97 unite iteration through modules into one loop 2017-06-18 22:46:06 +10:00
Tim Sebastian 083843e0ad remove code that pushes arrays of dependencies into dependencies
the actua dep population is done in lines 155-159
2017-06-18 22:45:08 +10:00
Tim Sebastian bd8c6cf158 make sure ConcatenatedModules also uses SortedSet
fix tests that was falsy - per default chunks are flagged as sorted in module
however this only holds true as they are initialized empty. Concatenated module however
has initial modules and therefore is not guaranteed to be ordered, the flags should therfor be false.
Using SortedSet fixes this as a sideeffect
2017-06-18 14:34:32 +10:00
Tobias Koppers 28f826a4e7 consistent order 2017-06-14 23:20:40 +02:00
Tobias Koppers 5d4ba56c5f Allow scope hoisting to process modules in multiple chunks 2017-06-14 22:46:26 +02:00
Tobias Koppers ec966354ca rename shorthand properties correctly
fixes #5027
2017-06-13 13:38:12 +02:00
Tobias Koppers 443b62ffa7 add special case for async without name 2017-06-09 16:04:52 +02:00
Sean Larkin dc315e5f6d feat(uglify): move uglify to external plugin from webpack-contrib 2017-06-07 12:35:50 -05:00
Tobias Koppers 8c7808991c fix lint error 2017-06-07 13:14:13 +02:00
Tobias Koppers 9060137035 generate nicer names 2017-06-07 12:57:15 +02:00
Tobias Koppers 9b58b7a705 generate correct namespace objects
fixes #5020
2017-06-07 12:56:53 +02:00
Tobias Koppers 1c538f9d84 fixes #5000 2017-06-06 11:18:34 +02:00
Tobias Koppers 4372819de1 libIdent should be rootModule 2017-06-05 14:01:19 +02:00
Tobias Koppers 9cd0cacd14 Merge branch 'master' into next 2017-06-03 16:36:38 +02:00
Tobias Koppers 72e94e32a4 Merge pull request #4965 from ymichael/duplicate-blocks
CommonsChunkPlugin can cause duplicate chunk blocks
2017-06-03 09:53:30 +02:00
Tobias Koppers 302289ce24 Merge branch 'master' into next 2017-06-02 16:28:22 +02:00
Tobias Koppers d3a0fc980e Merge pull request #4984 from webpack/bugfix/splitting-compilation
followup from #4968
2017-06-02 12:03:06 +02:00
Tobias Koppers 90159b0d37 Merge pull request #4982 from webpack/perf/optimize
optimize optimization plugins
2017-06-02 11:54:13 +02:00
Tobias Koppers 3caf4675a0 Upstream changes from https://github.com/jantimon/html-webpack-plugin/pull/670#issuecomment-301484908 2017-06-02 11:09:17 +02:00
Tobias Koppers 890a507b08 optimize OccurenceOrderPlugin 2017-06-02 01:24:55 +02:00
Alex Hughes cbc706ba98 Upstream changes from https://github.com/jantimon/html-webpack-plugin/pull/670#issuecomment-301484908 2017-06-01 16:38:27 +02:00
Tobias Koppers b08762b729 optimize optimization plugins 2017-06-01 16:35:07 +02:00
Tobias Koppers cc8e729ff4 detect conflicts with other variables
fixes #4967
2017-05-31 16:46:25 +02:00
Michael Yong 7834e6cd57 CommonsChunkPlugin: Don't allow blocks to contain duplicate chunks
- Add configCase to repro failure
2017-05-30 21:11:42 -07:00
Tobias Koppers 6a0e587768 spacing 2017-05-28 23:51:23 +02:00
Tobias Koppers 44bf6c245f update graph correctly 2017-05-28 17:18:41 +02:00
Tobias Koppers d8539561fd add optimization bailout info
track optimization bailout in concat plugin
2017-05-28 15:25:07 +02:00
Tobias Koppers b4d25208f4 filter modules from modules array 2017-05-24 11:22:42 +02:00
Tobias Koppers 1c3bef901c merge PR #4884 again
by @filipesilva
2017-05-22 20:04:23 +02:00
Tobias Koppers 5d9eef85c7 improvements from review 2017-05-21 09:15:43 +02:00
Tobias Koppers 4a25a17bb6 improvements from review 2017-05-21 09:15:42 +02:00
Tobias Koppers c41ab084f6 fix export mangling in concatenated modules 2017-05-21 09:15:42 +02:00
Tobias Koppers 9b2a9fa786 Scope Hoisting 2017-05-21 09:15:41 +02:00
Tobias Koppers 2bd2d2844c improve a few issues
from review by @Kovensky
2017-05-20 14:54:42 +02:00
Tobias Koppers 8d3efe7d63 Merge branch 'next' into perf/modules-set 2017-05-16 14:37:03 +02:00
Tobias Koppers e1bac32c19 Use a Set to store modules in a chunk 2017-05-16 11:50:50 +02:00
Tobias Koppers b45588bc11 CommonsChunkPlugin in async mode doesn't select initial chunks
fixes #4795
2017-05-04 10:50:46 +02:00
Tobias Koppers 616777b520 fix spacing issue 2017-04-21 18:47:59 +02:00
Tobias Koppers 7ca1297e11 Use a Set in RemoveParentModulesPlugin for performance 2017-04-18 23:28:16 +02:00
Tobias Koppers e8bc9c2b3b use a Set for Module.chunks 2017-04-18 23:27:25 +02:00
Tim Sebastian ed51e2ff2c unify makeRelative method used in aggresivesplittingplugin and recordsidsplugin 2017-04-05 23:38:15 +10:00
Tobias Koppers e7c13d75e4 Merge pull request #4553 from timse/named-chunks-plugin
Named chunks plugin
2017-04-04 09:45:08 +02:00
Tim Sebastian 46f174b756 reuse logic as used in 2.2.1 to check what chunks should get their runtime extracted 2017-04-02 12:14:59 +10:00
Tim Sebastian 9f05520686 check splitData for null and undefined 2017-03-26 20:30:52 +11:00
Tim Sebastian b8e1981e09 allow chunk.id to be a number - or rather a non-null-something 2017-03-26 20:30:52 +11:00
Tobias Koppers 915c150f3a fix bug in MinChunkSizePlugin
fix #4532
2017-03-22 12:09:22 +01:00
Tim Sebastian d7ae9adfb2 do not incorporate chunks without modules 2017-03-18 12:20:08 +11:00
Stephen Hurwitz 87702a29ad Updates UglifyJs to 2.8.x to accept additional compress options
Bumps the minimum version of UglifyJs and substitutes `.compress()` for
`.transform()` as recommended. In addition to a new test covering
`compress` options this commit also contains updates to make existing
tests pass with the update.
2017-03-04 18:31:39 -08:00
Tim Sebastian ff814e91b5 add comments to FlagIncludedChunksPlugin 2017-02-23 23:39:19 +11:00
Tim Sebastian 39575663b7 move chunk parents check up 2017-02-23 23:31:05 +11:00
Tim Sebastian 8d193c7097 improve wording in DedupePlugin error 2017-02-23 23:28:05 +11:00
Tim Sebastian 28b4972d53 replace `chunk.hasRuntime` with `chunk.parents.length === 0`
see https://github.com/webpack/webpack/pull/4310\#discussion_r102400692
2017-02-22 21:38:45 +11:00
Tim Sebastian 59ea80ff9a remove `chunk.isInitial` constraint before moving blocks 2017-02-22 21:35:50 +11:00
Tim Sebastian e1ea0a717c implement review feedback 2017-02-22 21:32:31 +11:00
Tim Sebastian 018ca1ad2c improve comments 2017-02-22 00:13:21 +11:00
Tim Sebastian 61ce0f79c1 apply review feedback 2017-02-22 00:13:21 +11:00
Tim Sebastian cc1636f141 make variable and method names clearer 2017-02-22 00:13:20 +11:00
Tim Sebastian efa8b52293 use children option instead of `selectedChunks === false` 2017-02-22 00:13:20 +11:00
Tim Sebastian 5838f56d0f correct comment 2017-02-21 23:47:55 +11:00
Tim Sebastian ec736bfe21 move actual apply method to the top, to easier find where things happen 2017-02-21 23:47:55 +11:00
Tim Sebastian c97b3de912 add better validation for options, rename async to prevent future clash with reserved words 2017-02-21 23:47:54 +11:00
Tim Sebastian 10cea76e1e fix wrong assignment of filenameTemplate in constructor 2017-02-21 23:47:54 +11:00
Tim Sebastian 9a7a6b93bd add comments and clean up a bit 2017-02-21 23:47:54 +11:00
Tim Sebastian bcc10e8aa6 extract the last step of reconnecting the chunks to own methods 2017-02-21 23:47:54 +11:00
Tim Sebastian 9f18ea9b15 split up and extract default linking between modules and chunks 2017-02-21 23:46:51 +11:00
Tim Sebastian 24b8aebb74 extract reallyUsedModules creation to own simplified methods 2017-02-21 23:46:51 +11:00
Tim Sebastian 15be539d24 fix up method call 2017-02-21 23:46:51 +11:00
Tim Sebastian 24ecaf56be cleanup unused variables 2017-02-21 23:46:50 +11:00
Tim Sebastian 3dc08aec2a extract creation of async chunk 2017-02-21 23:46:50 +11:00
Tim Sebastian 063c54f546 extract creation of usedChunks 2017-02-21 23:46:50 +11:00
Tim Sebastian d53c882929 extract and simplify definition of the common chunk 2017-02-21 23:46:50 +11:00
Tim Sebastian e9ac46dc26 normalize options for commons chunk plugin 2017-02-21 23:46:50 +11:00
Tim Sebastian 952f04d90f node v4 fails to reassignes const in for-of loops properly 2017-02-19 13:18:01 +11:00
Tobias Koppers d0f1f6e770 Merge pull request #4134 from SebastianS90/uglifyjs-extract-comments
UglifyJsPlugin: extract comments to separate file
2017-02-15 15:07:54 +01:00
Simon Sperling c1346f5aa2 fix spelling error in MinChunkSizePlugin 2017-02-13 16:30:27 +01:00
Sebastian Schweizer d2461dab06 improve code (review) 2017-02-10 23:16:20 +01:00
Sebastian Schweizer 71933e979e UglifyJsPlugin: extract comments to separate file
License comments use up a lot of space, especially when using many small
libraries with large license blocks. With this addition, you can extract
all license comments to a separate file and remove them from the bundle
files. A small banner points to the file containing all license
information such that the user can find it if needed.

We add a new option extractComments to the UglifyJsPlugin.
It can be omitted, then the behavior does not change, or it can be:
- true: All comments that normally would be preserved by the comments
    option will be moved to a separate file. If the original file is
    named foo.js, then the comments will be stored to foo.js.LICENSE
- regular expression (given as RegExp or string) or a function
  (astNode, comment) -> boolean: All comments that match the given
    expression (resp. are evaluated to true by the function) will be
    extracted to the separate file. The comments option specifies
    whether the comment will be preserved, i.e. it is possible to
    preserve some comments (e.g. annotations) while extracting others or
    even preserving comments that have been extracted.
- an object consisting of the following keys, all optional:
  - condition: regular expression or function (see previous point)
  - file: The file where the extracted comments will be stored. Can be
      either a string (filename) or function (string) -> string which
      will be given the original filename. Default is to append the
      suffix .LICENSE to the original filename.
  - banner: The banner text that points to the extracted file and will
      be added on top of the original file. will be added to the
      original file. Can be false (no banner), a string, or a function
      (string) -> string that will be called with the filename where
      extracted comments have been stored. Will be wrapped into comment.
      Default: /*! For license information please see foo.js.LICENSE */
2017-02-10 11:59:56 +01:00
Tobias Koppers be4f27c51d Merge pull request #4200 from timse/allow-to-supress-uglifyjs-warnings
Allow to supress uglifyjs warnings
2017-02-09 14:08:01 +01:00
Tobias Koppers 93ac8e9c36 Merge pull request #4205 from timse/use-let-const-as-blockscoped-variables
Use let const as blockscoped variables
2017-02-08 09:44:03 +01:00
Simon Legner ea4be07d45 Link documentation to webpack.js.org
Replaces webpack.github.io links with links to the new documentation.
2017-02-07 10:07:01 +01:00
CUNTIE 3fc1f42b53 fix AggressiveSplittingPlugin logical bug 2017-02-07 09:24:36 +08:00
Tim Sebastian 5321ae6902 fixup AggressiveSplittingPlugin 2017-02-05 13:10:08 +11:00
Tim Sebastian 8e7022b443 refactor MinChunkSizePlugin to be more functional 2017-02-05 12:20:23 +11:00
Tim Sebastian bd386ecf06 remove leftover console.log in ChunkModuleIdRangePlugin 2017-02-05 12:20:23 +11:00
Tim Sebastian 1d78f990a6 use const where applicable in UglifyJsPlugin 2017-02-05 12:20:22 +11:00
Tim Sebastian 92364dc0f7 avoid reassigning stream with different value in UglifyJsPlugin 2017-02-05 12:20:22 +11:00
Tim Sebastian 104398f87a avoid reassigning files with different value in UglifyJsPlugin 2017-02-05 12:20:21 +11:00
Tim Sebastian 1028043e38 make LimitChunkCountPlugin more functional avoid too much reassigning
add some doco for better understanding of what is happening
2017-02-05 12:20:21 +11:00
Tim Sebastian 0a0b72776d use const where applicable in EnsureChunkConditionsPlugin 2017-02-05 10:40:10 +11:00
Tim Sebastian 68ab778373 use const where applicable in ChunkModuleIdRangePlugin 2017-02-05 10:38:56 +11:00
Tim Sebastian e42b603c46 make use of block scoped nature of let and const in AggressiveSplittingPlugin 2017-02-05 10:37:36 +11:00
Tim Sebastian 7968caa6b1 use const where applicable in AggressiveMergingPlugin 2017-02-05 10:33:54 +11:00
Tim Sebastian e107cc598a allow to filter uglify warnings by adding option "warningsFilter"
only works if "sourceMap" setting is true
2017-02-05 01:37:10 +11:00
Tobias Koppers 089356faa3 fixes a bug in OccurrenceOrderPlugin 2017-01-30 22:49:53 +01:00
Tobias Koppers b07dc3da27 Merge pull request #3745 from shubheksha/refactor-CommonsChunkPlugin
refactor(ES6): upgrade commonsChunkPlugin to ES6
2017-01-26 15:57:32 +01:00
Tobias Koppers d7384e2f6a removed unnecessary context argument 2017-01-25 23:11:07 +01:00
Tom910 665fbd0ca8 Fix todo comments 2017-01-25 22:47:11 +03:00
Tom910 74efa93d5f More refactoring Compilation.js and RemoveParentModulesPlugin.js 2017-01-25 22:39:24 +03:00
Tom910 588976d5e9 Deleting cache length size to loop 2017-01-24 22:39:38 +03:00
Shubheksha Jalan 8d315b1630 cleaned up some functions 2017-01-24 16:39:46 +05:30
Shubheksha Jalan 4b06eb94e9 fix merge commits 2017-01-24 16:17:12 +05:30
Tom910 eb87ae931d Refactoring and optimize RemoveParentModulesPlugin.js 2017-01-23 21:52:47 +03:00
Tobias Koppers 8e69a80847 code linting 2017-01-11 12:29:01 +01:00
Shubheksha Jalan bc6a6ad324 cleaned up a few functions 2017-01-10 17:18:36 +05:30
Shubheksha Jalan 15d6a5e7ea formatted the template string to remove extra whitespace and line breaks 2017-01-10 17:18:36 +05:30
Shubheksha Jalan 1f6431e4df refactor(ES6): changed lengthy error message string to template literal 2017-01-10 17:18:36 +05:30
Shubheksha Jalan 29bf3e72f3 refactor(ES6): upgrade CommonsChunkPlugin to ES6 2017-01-10 17:18:36 +05:30
Shubheksha Jalan 9215b6affd refactor(ES6): upgrade CommonsChunkPlugin to ES6 2017-01-10 17:18:36 +05:30
Shubheksha Jalan 126eb9158a refactor(ES6): upgrade OccurrenceOrderPlugin to ES6 (#3756) 2017-01-05 11:47:05 -06:00
Shubheksha Jalan a133c90b91 refactor(ES6) upgrade RemoveEmptyChunksPlugin to ES6 (#3765)
* refactor(ES6): upgrade RemoveEmptyChunksPlugin to ES6
2017-01-05 10:48:16 -06:00
Shubheksha Jalan 70bf6c2817 refactor(ES6): upgrade MinChunkSizePlugin to ES6 (#3757)
* refactor(ES6): upgrade MergeDuplicateChunksPlugin to ES6
2017-01-04 23:42:36 -06:00
Shubheksha Jalan 4149f10764 refactor(ES6): upgraded LimitChunkCountPlugin to ES6 (#3754) 2017-01-04 22:17:12 -06:00
Shubheksha Jalan 80e177a2a5 refactor(ES6): upgraded FlagIncludedChunksPlugin to ES6 (#3752) 2017-01-04 16:23:48 -06:00
Shubheksha Jalan 4699cccdae refactor(ES6): upgrade EnsureChunkConditionsPlugin to ES6 (#3751) 2017-01-04 16:21:38 -06:00
Shubheksha Jalan 771c6b2877 refactor(ES6): upgrade DedupePlugin to ES6 (#3749) 2017-01-04 15:18:39 -06:00
Shubheksha Jalan d1361ae078 refactor(ES6): upgrade AggressiveMergingPlugin to ES6 (#3732)
* refactor(ES6): upgrade AggressiveMergingPlugin to ES6
2017-01-04 15:18:16 -06:00
Shubheksha Jalan 7dae8fbc00 refactor(ES6): upgrade AggressiveSplittingPlugin to ES6 (#3743)
* refactor(ES6): upgrade AggressiveSplittingPlugin to ES6

* refactor(ES6): remove this hack and fix this value in arrow function
2017-01-04 13:15:54 -06:00
Shubheksha Jalan 61251de9c0 refactor(ES6): upgrade RemoveParentModulesPlugin to ES6 (#3731) 2017-01-04 12:44:01 -06:00
Shubheksha Jalan d7b97e86a1 refactor(ES6): upgrade ChunkModuleIdRangePlugin to ES6 (#3727) 2017-01-04 09:13:05 -06:00
Adam Markon 879adef6c7 refactor UglifyJSPlugin to ES6 class (#3717) 2017-01-03 23:53:37 -06:00
Sean Larkin aa8d01bf8d refactor(eslint): Added no-unsed-vars, env specific .eslintrc's for buildin & hot (#3636)
* refactor(eslint): Added no-unsed-vars, env specific .eslintrc's for buildin & hot

* This change allows for buildin to now be part of the lint test by addition of an extra .eslintrc file which extends existing but sets es6 to false
* Turned on no-unused-vars for eslint, and then removed all warnings from turning that feature on
* Was getting notified of errors in "quote" property in eslintrc, so changed to correct value from error to 2.

* beautify

* swap invalid eslint config val
2016-12-30 09:43:49 -06:00
James Hartig 0676304822 Pass mangle options to ast.figure_out_scope in uglify 2016-12-16 16:19:06 -05:00
Tobias Koppers c87d3ec523 Merge pull request #3428 from webpack/feature/performance
performance improvements
2016-12-14 21:18:44 +01:00
Tobias Koppers f4ab7fc7e2 more performance improvements 2016-12-14 16:22:54 +01:00
Tobias Koppers da29d21ae4 performance improvements
breaking change: Module has now a "unbuild" method that must work correctly
2016-12-14 16:22:16 +01:00
Tobias Koppers d0beb306ee check chunk condition before moving into commons chunk 2016-12-14 13:59:47 +01:00
inuscript 4bf2ba46af revert this.async (avoid may breaking change) 2016-12-07 09:43:17 +09:00
inuscript d03203d260 change async variable name 2016-12-07 08:54:10 +09:00
inuscript dcff8c833f Fill available params on Deprecation notice 2016-12-06 19:55:48 +09:00
Tobias Koppers 91cbb4c288 removed DedupePlugin
it's no longer needed for npm3
and causes many issues
2016-11-15 09:25:58 +01:00
Tushar Sonawane 34c02a9c15 fix 'no-loop-func' warnings 2016-10-29 18:53:54 +05:30
Tobias Koppers f9b81a7509 make sure module moving don't hang in circular chunk dependencies
fixes #2990
2016-09-18 10:30:05 +02:00
Tobias Koppers a0a920d83f added experimental plugin to set custom module ids 2016-09-16 01:18:21 +02:00
Duncan Beevers e7a06a79e2 Log original and mapped filename+line+column on uglify error 2016-08-03 21:35:57 -05:00
Tobias Koppers 79eb404257 fixes webpack/extract-text-webpack-plugin#82
fixes webpack/extract-text-webpack-plugin#115
fixes webpack/extract-text-webpack-plugin#170
2016-07-15 21:59:24 +02:00
Tobias Koppers 2f618e733a refactoring and aggressive-splitting plugin 2016-07-13 11:03:14 +02:00
Tobias Koppers cf00a1a22d rewrite cases where js beautify and eslint disagree on formatting 2016-06-20 21:46:27 +02:00
Simen Bekkhus b1bdd6989f Use eslint's indent rule 2016-06-20 08:21:00 +02:00