Commit Graph

248 Commits

Author SHA1 Message Date
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
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 d95f93f8cb add output.globalObject configuration option
remove deprecated atom and electron target
add self libraryTarget
add self external type
2017-12-27 18:46:37 +01:00
Florent Cailhol 7dd41b55c6 Replace deprecated Tapable#apply by Plugin#apply 2017-12-20 11:53:56 +01:00
Florent Cailhol 08ddad2e10 Replace NormalModuleFactory#plugin() calls 2017-12-14 14:42:49 +01:00
Tobias Koppers 2148f556a4 Enable minimizing in production mode 2017-12-14 00:06:56 +01:00
Tobias Koppers fabe631a83 Only generate portable records when needed 2017-12-01 11:27:03 +01:00
Tobias Koppers 31e9625dfe upgrade tapable for Compiler 2017-11-27 21:01:44 +01:00
Tobias Koppers 2201b860a5 Add mode option and choose defaults depending on mode
add optimization options
use development mode for watch/hot/config tests
use production mode for integration/stats tests
create output directory if not existing
move __esModule to runtime
fix dependency behavior for cases without usedExports
2017-11-24 08:17:17 +01:00
Tobias Koppers 5e39ec46ee Allow to override resolve configuration 2017-11-18 08:12:35 +01:00
Tobias Koppers 982e44f670
Merge branch 'next' into master 2017-11-16 14:17:29 +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 4597805222
Merge branch 'next' into master 2017-11-11 19:00:05 +01:00
Tobias Koppers 0ae5fede3d move parser creation into separate plugins 2017-11-10 11:36:46 +01:00
Tobias Koppers 41a1d602e1 added WebAssembly Proof of Concept 2017-11-10 09:17:11 +01:00
Stephan Badragan 68acd41bff passing namespace argument to contructors of dev tool plugins 2017-10-19 13:23:28 -07:00
Stephan Badragan 72b28aa1c3 passing devtoolNamespace through instead of setting it statically 2017-10-18 23:30:37 +01:00
Stephan Badragan f925032d5a adding `output.devtoolNamespace` option
When loading multiple libraries built with webpack, you can run into
collisions of the sourcemap file paths. For examle, both have
"webpack:///src/index.js".

This change addresses the problem by introducing a new output option
`output.devtoolNamespace` which defaults to `output.library` when
not specified. The defaults moduleFilenameTemplates in all the
sourcemap plugins have been modified to start with:
"webpack://[namespace]/...", where [namespace] will be replaced by
the `output.devtoolNamespace`.

Notice that there are only two slashes following "webpack:" now.
This is to make it behave just as before when not building with a
namespace. When building with a namespace you only get the two
slashes, but from what I've seen the chrome dev tools only care
about the first 2 slashes anyways.

Discussed with sokra here:
https://github.com/webpack/webpack/issues/5767
2017-10-18 01:14:40 +01: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 215647d9fc Merge pull request #5193 from dmvjs/ke/loader-target-plugin-use-options-target-where-possible
not using duplicate strings where it is easy to do so
2017-07-01 14:52:31 +02:00
Kirk Elliott c54a538d6b not using duplicate strings where it is easy to do so 2017-06-30 11:41:45 -04:00
Tobias Koppers 8ad6d27dab Merge pull request #4987 from webpack/feature/library-default-export
allow to export properties/exports for a library
2017-06-02 16:04:59 +02:00
Tobias Koppers de8fc51a6f allow to export any property/export of the bundle
fixes #3929
2017-06-02 14:52:41 +02:00
Tobias Koppers 765e97135b allow context to resolve to index.js files
fixes #3873
2017-06-02 13:41:25 +02:00
Aeneas c392f55ec8 Split sourceMappingURL string
This change is splitting `sourceMappingURL` to `source" + "MappingURL` in order to avoid syntax errors caused by babel when importing webpack in code that is transpiled by babel. This workaround was suggested in https://github.com/babel/babel/issues/4012 and this issue is an upstream to https://github.com/electron/electron-compilers/issues/67 and https://github.com/electron/electron-compile/issues/210 .

Apart from a small syntax change there are no changes to the functionality.
2017-04-17 10:02:36 +02:00
e-cloud 52055ba07e refactor: dead code elimination
remove those code not defined but used;
remove unused code
2017-04-11 19:43:05 +08:00
SendilKumar N 4500b10140 refactor(es6): WebpackOptionsApply 2017-02-21 21:49:15 +08:00
Tobias Koppers 9380bd4c12 Bugfix/disable module in harmony (#3755)
* moved format location into separate file
allow dependencies to report errors too

* NullDependencies do not change the hash

* dependencies can opt-out from `__webpack_require__` param

* apply module syntax plugins earlier

* emit errors if using AMD or CommonJS syntax in harmony modules
2017-01-09 10:11:34 -06:00
Joe Bateson a8bb6cdb1c refactor(es6): Replace object-assign polyfill with native method (#3608) 2016-12-28 13:07:28 -06:00
Tobias Koppers b46da21589 move plugins before environment 2016-12-21 22:56:04 +01:00
Tobias Koppers f4ab7fc7e2 more performance improvements 2016-12-14 16:22:54 +01:00
Tobias Koppers 37b7474651 Refactoring, make options simpler
breaking change: performance options changed
2016-12-14 11:33:57 +01:00
Tobias Koppers a148d6e754 Merge pull request #3350 from webpack/feature/custom_stats
feat(performance): webpack performance budgets
2016-12-07 23:11:29 +01:00
Sean Larkin 44f6f07ec2 chore(performance): cleanup logic errors, reformat test expects with new colomn [big] format if empty 2016-12-07 17:22:20 +01:00
Sean Larkin c6850b3481 chore(performance): cleaned up unused variables, removed compilation from constructor, added stats additional messages 2016-12-07 17:22:20 +01:00
Sean Larkin 52bfdab526 feat(perf): added initial setup for perf plugins, need to configure test cases and stats output based on perf props 2016-12-07 17:21:17 +01:00
Tobias Koppers 5225c000c1 fixes --cache and --no-cache 2016-12-07 16:18:33 +01:00
Tobias Koppers 11eefd5841 added import(), fixes #3098 2016-12-03 11:50:44 +01:00
Tobias Koppers e896d14829 MultiCompiler with compilers depend on other 2016-09-16 01:20:34 +02:00
Tobias Koppers afd11259b2 stricter linting and bug fixes 2016-09-15 00:22:10 +02:00
Tobias Koppers 19eabc7bb6 track which exported are provided by the modules
star export is filtered by provided exports

fixes #2953
2016-09-05 23:41:03 +02:00
Sean Larkin 5b250242bd Merge 2016-06-08 10:22:25 -05:00
e-cloud 13322ca35c add missing constructors for all classes needed
As i walk through the source, i've tried to trace the webpack running stack.
Then, i find the missing constructors result in uncleasr stack and create a patch
for them.
2016-05-20 13:39:36 +08:00
Tobias Koppers b98debb809 keep strict mode even if code is inserted
fixes #1970
2016-05-05 17:45:58 +02:00
Tobias Koppers 1b459d91f5 move externals into chunk with entry
fixes #2314
maybe fixes #2066
fixes #2375
fixes #1673
2016-05-05 10:13:50 +02:00
Tobias Koppers 5d981fe3d5 Option noSources that removes sourcesContent from sourcemaps. Also available as "nosources" in devtool option.
Picked from #2213
2016-04-10 23:37:17 +02:00
C. T. Lin 7a8743bde2 Correct Electron built-in module list
Correct built-in module list for electron main and renderer process: v0.37.3 document http://electron.atom.io/docs/v0.37.3/
2016-04-03 16:39:03 +08:00
Sean Larkin b607e97124 Adding auxiliary comments option for UMD wrapper 2016-02-26 14:25:53 -06:00
Kenny Tran eebc5ceaf6 Fix no-redeclare in code 2016-01-18 18:57:42 -08:00
Evan You d01c6b63da fix eval-source-map failing when source ends with comment 2016-01-05 10:41:59 -05:00
Tobias Koppers 461c49ab66 updated partly to new enhanced-resolve API 2016-01-02 00:21:54 +01:00
Nikita Khomyakov 0b9601e07e Add missing Electron built-in modules
Add `ipc-renderer` and `ipc-main` to the list of Electron's external modules
2015-12-11 13:15:19 +02:00
Tobias Koppers d5e8ec7901 fixed syntax from previous commit 2015-11-20 20:15:03 +01:00
Tobias Koppers 544079725e Merge pull request #1651 from leftstick/master
add electron to both electron and electron-renderer target
2015-11-20 17:26:43 +01:00
Tobias Koppers b296e5a08c use options object for NodeTemplatePlugin 2015-11-20 08:38:15 +01:00
Howard.Zuo 962e3902c8 add electron to both electron and electron-renderer target 2015-11-20 11:12:03 +08:00
Tobias Koppers 20e0f785bc Merge pull request #1467 from chentsulin/patch-1
`electron-main` and `electron-renderer` targets
2015-11-15 00:39:15 +01:00
Tobias Koppers 0f2f71492f Merge pull request #1523 from jhen0409/patch-1
Fix module of electron target: web-view -> web-frame
2015-11-07 21:28:50 +01:00
Jhen 32d457eee9 Keep web-view to support older electron versions 2015-11-01 02:42:37 +08:00
Tobias Koppers 6307ed72ac Added experimental usage tracking of ES6 modules and example 2015-10-21 21:05:01 +02:00
Jhen cf9ed59ee8 Fix module of electron target: web-view -> web-frame 2015-10-19 19:54:48 +08:00
C. T. Lin f8700060ed `electron-main` and `electron-renderer` targets 2015-09-23 00:20:31 +08:00
Tobias Koppers 7cbd78c1da Merge branch 'master' into webpack-2
Conflicts:
	.travis.yml
	bin/config-optimist.js
	test/statsCases/define-plugin/expected.txt
2015-09-19 20:11:48 +02:00
Stephan Florquin 00b4c539ca Add native-image plugin to electron target 2015-09-05 20:08:59 +02:00
Espen Volden db21a79587 Add option `umdNamedDefine` to toggle naming 2015-08-26 11:50:42 +02:00
Tobias Koppers 431a4c791c Merge branch 'master' into webpack-2
Conflicts:
	hot/dev-server.js
	hot/only-dev-server.js
	hot/poll.js
	hot/signal.js
	lib/ChunkTemplate.js
	lib/HotModuleReplacement.runtime.js
	lib/HotModuleReplacementPlugin.js
	lib/JsonpMainTemplatePlugin.js
	lib/MainTemplate.js
	lib/NormalModule.js
	lib/Parser.js
	lib/RecordIdsPlugin.js
	lib/WebpackOptionsApply.js
	lib/dependencies/RequireEnsureDependency.js
	lib/node/OldNodeWatchFileSystem.js
	lib/optimize/OccurrenceOrderPlugin.js
	package.json
2015-07-17 09:30:37 +02:00
Tobias Koppers f7d799adb4 rebeautify without spacing after keyword 2015-07-16 00:19:23 +02:00
Avi Haiat 0a340f2b1a feat(app): Beautify all lib files 2015-07-13 01:20:09 +03:00
Tobias Koppers d98df52a49 added System.import API and async context 2015-07-01 00:19:52 +02:00
Tobias Koppers 66df34688e Merge branch 'master' into webpack-2
Conflicts:
	bin/convert-argv.js
	lib/webpack.js
2015-06-07 22:24:03 +02:00
Tobias Koppers 28aa3624a4 Merge pull request #1060 from webpack/multi-build
Multiple build support
2015-05-30 02:37:25 +02:00
Alberto Leal 4018f5a519 backwards compatibility for atom 2015-05-28 21:53:38 -04:00
Alberto Leal e43f1a41f3 rename atom to electron 2015-05-22 23:14:41 -04:00
Tobias Koppers 94ba35cb13 Merge branch 'master' into webpack-2
Conflicts:
	lib/WebpackOptionsApply.js
2015-05-22 00:19:16 +02:00
Tobias Koppers a0938d728f simpler EvalDevTool 2015-05-18 21:59:01 +02:00
Tobias Koppers 5454a89b36 removed deprecated options 2015-05-18 21:53:32 +02:00
Tobias Koppers 817e678d9a added DllPlugin and dll example 2015-05-16 18:27:59 +02:00
Tobias Koppers f4b9d5f57a Merge branch 'master' into webpack-2
Conflicts:
	lib/Compilation.js
	lib/Compiler.js
	lib/DefinePlugin.js
	lib/HotModuleReplacementPlugin.js
	lib/Parser.js
	lib/node/NodeSourcePlugin.js
	lib/node/OldNodeWatchFileSystem.js
	package.json
2015-04-27 20:22:13 +02:00
Tobias Koppers cebd3b9722 added linting 2015-04-23 23:55:50 +02:00
Tobias Koppers ed75627f06 Merge branch 'master' into webpack-2
Conflicts:
	bin/convert-argv.js
	package.json
2015-04-14 20:09:29 +02:00
Tobias Koppers c104323844 more flexible source-map devtool parsing 2015-04-07 14:33:57 +02:00
Tobias Koppers 0431b74149 added cheap-source-map and lineToLine option 2015-04-05 01:52:30 +02:00
Tobias Koppers 6211d020d1 enabled OccurrenceOrderPlugin by default
#729
2015-03-05 21:49:53 +01:00
Tobias Koppers a2af69056a Remove old stuff 2015-03-05 21:48:16 +01:00
simonzack 5bd10d6e88 Merge remote-tracking branch 'remotes/origin/harmony'
Conflicts:
	lib/Parser.js
	package.json
2015-03-05 15:35:23 +11:00
Tobias Koppers ae79597e10 support symlinks, fixed #554 2015-01-17 21:57:28 +01:00
Tobias Koppers 5f77afe5f4 ES6 parser, ES6 modules 2015-01-12 17:45:30 +01:00
Christian Rädel c8a7942299 Add require NodeTemplatePlugin. 2014-10-13 14:10:35 +02:00
Tobias Koppers 764eda144f merged into one plugin
formating
2014-10-12 11:43:10 +02:00
Christian Rädel afdc577304 Replace Jsonp- with NodeTemplatePlugin. 2014-10-09 19:37:47 +02:00
Christian Rädel b5c4d9fd1f Add atom target. 2014-10-09 09:53:59 +02:00
Jason Anderson f371945a29 Add TemplatedPathPlugin 2014-09-11 15:31:08 +02:00
Tobias Koppers 6f2be891c2 added 'hidden-sourcemap' devtool
fixes #437
2014-08-28 15:13:05 +02:00
Tobias Koppers 97128e0535 added option for devtools
`output.devtool[Fallback]ModuleFilenameTemplate` option
fixes #405
2014-08-14 11:31:05 +02:00
Dan Abramov 5bf94e3775 EvalSourceMapDevToolPlugin accepts one parameter 2014-07-18 02:56:31 +04:00
Tobias Koppers d80cdcefac Code Quality 2014-06-24 18:53:32 +02:00
Tobias Koppers 44bb43854f Added experimental MultiCompiler
webpack(...) takes an array
support an array in webpack.config.js
2014-06-11 22:26:50 +02:00
Tobias Koppers 525f8b9579 don't allow dedupe plugin by option (because thats broken) 2014-04-19 21:35:26 +02:00
Vahe Hovhannisyan bbc46a6c0b Require externals plugin for node-webkit target. 2014-04-09 09:47:59 -07:00
Tobias Koppers bea08dc1a2 added node-webkit target (experimental)
added option to provide no target
added defaults for node-webkit
allow browsertests to run in node-webkit
2014-04-09 09:12:04 +02:00
Tobias Koppers 998870d9ee Warn about modules with matching names if case is ignored
fixes #210
2014-03-31 11:33:17 +02:00
Tobias Koppers 61f1c4d37d allow to configure default RegExps for automatically created contexts
allow to configure when an automatically created context is critical
better warning message in critical dependencies warning

fixes #196
fixes #198
2014-03-11 16:08:22 +01:00
Tobias Koppers a7f9340885 added externals option 2014-03-05 09:58:51 +01:00
Tobias Koppers 48aad3eeee fixed #179 typo in OccurenceOrderPlugin 2014-02-25 08:51:40 +01:00
Tobias Koppers ee30c84672 fixes ProvidePlugin fallback 2014-02-25 08:48:51 +01:00
Tobias Koppers d69a884b2a better devtools 2014-02-13 11:40:16 +01:00
Tobias Koppers efb2dd483f choose defaults by target
browser field is on by default, fixes #151
2014-02-13 11:02:31 +01:00
Tobias Koppers 8e77c17f44 add packageAlias
fixes #151
2014-02-11 12:24:41 +01:00
Tobias Koppers 3b3f6cb0b3 some fixes 2014-02-11 08:53:32 +01:00
Tobias Koppers 3170b76b22 webpack 1.0 beta
moved many options to plugins
#113
2013-12-17 23:21:49 +01:00
Tobias Koppers b0f5575c57 added async chunk loading for node.js build 2013-12-15 23:08:11 +01:00
Tobias Koppers 7a665410ca added IgnorePlugin, fixed replacement plugins 2013-11-05 18:19:04 +01:00
Tobias Koppers 52b40b3798 allow loaders to load modules
fixed templates readable name
2013-10-28 16:21:29 +01:00
Tobias Koppers 6a2f255778 fixed parsing of packageMains options 2013-10-12 22:08:04 +02:00
Tobias Koppers 672fc9ba0f UglifyJsPlugin: don't drop warnings
warnings are mapped by source map to modules
2013-09-14 11:50:39 +02:00
Tobias Koppers a37948d114 added options.define, evaluate conditionals, fixes #99 2013-09-13 11:17:57 +02:00
Tobias Koppers 58586f8ae2 make it webpack-able 2013-07-10 23:20:07 +02:00
Tobias Koppers 4c7766a694 support #sourceURL and #sourceMappingURL, #91 2013-07-04 14:08:47 +02:00
Tobias Koppers 2181739daf added unsafeCache option for performance 2013-07-04 12:01:10 +02:00
Tobias Koppers 8b2301056d added hot module replacement, fixes #26 2013-06-19 13:49:57 +02:00
Tobias Koppers 327a990070 fixed bugs 2013-06-19 11:53:03 +02:00
Tobias Koppers a84a0433c9 better optimizing 2013-06-17 18:55:11 +02:00
Tobias Koppers c30f16f439 added experimental deduplication support #47 2013-06-12 16:16:06 +02:00
Tobias Koppers f84f000149 records, typo 2013-05-31 12:22:40 +02:00
Tobias Koppers 209f96c543 added option to prefetch modules 2013-05-13 13:34:00 +02:00
Tobias Koppers 5cdb8cbf81 cache chunks, cache assets 2013-05-08 13:28:54 +02:00
Tobias Koppers 0de7c73ad8 SourceMap support 2013-03-26 16:54:41 +01:00
Tobias Koppers c4140aac51 moved ConsolePlugin into NodeSourcePlugin 2013-02-26 13:31:05 +01:00
Tobias Koppers 38d3c877dd support labeled modules fixes #72 2013-02-26 12:36:34 +01:00
Tobias Koppers 9fe83b3dc8 improved chunk loading
now a chunk is not loaded if all included modules are already loaded (by other chunks)
2013-02-24 02:05:55 +01:00
Tobias Koppers a0680280f3 added require.include 2013-02-15 17:08:14 +01:00
Tobias Koppers 64af867150 added require.js stuff, fixed progress 2013-02-13 21:24:00 +01:00
Tobias Koppers 3dc62749a2 moved webworker template, added node.js template #57 2013-02-13 17:00:07 +01:00
Tobias Koppers e2277c64c9 bug fix for resolveLoader.root 2013-02-11 11:10:15 +01:00
Tobias Koppers 0df61621ea added MinChunkSizePlugin 2013-02-11 10:52:19 +01:00
Tobias Koppers 05152cee7f added provide plugin and option 2013-02-10 20:37:30 +01:00
Tobias Koppers 68ee0a6537 some bugfixes and fallback option 2013-02-04 13:59:43 +01:00
Tobias Koppers bd89d65b8e added resolve.root support 2013-02-04 10:47:00 +01:00
Tobias Koppers 8ecdb72b48 removed old files, moved stuff 2013-02-01 08:42:12 +01:00
Tobias Koppers 55d1af8109 fix named chunks, added multi entry plugin 2013-01-31 01:44:39 +01:00
Tobias Koppers ee01837d66 Refactored everything for 0.9 2013-01-30 18:49:25 +01:00