Update webpack to the latest version 🚀 #3574
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
☝️ Greenkeeper’s updated Terms of Service will come into effect on April 6th, 2018.
Version 4.0.0 of webpack was just published.
The version 4.0.0 is not covered by your current version range.
If you don’t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.
It might be worth looking into these changes and trying to get this project onto the latest version of webpack.
If you have a solid test suite and good coverage, a passing build is a strong indicator that you can take advantage of these changes directly by merging the proposed change into your project. If the build fails or you don’t have such unconditional trust in your tests, this branch is a great starting point for you to work on the update.
Release Notes
v4.0.0Big changes
mode
or--mode
) between two modes now: production or developmentoptimization.*
(build your custom mode)process.env.NODE_ENV
are set to production or development (only in built code, not in config)none
mode which disables everythingimport()
always returns a namespace object. CommonJS modules are wrapped into the default exportimport()
NoEmitOnErrorsPlugin
->optimization.noEmitOnErrors
(on by default in production mode)ModuleConcatenationPlugin
->optimization.concatenateModules
(on by default in production mode)NamedModulesPlugin
->optimization.namedModules
(on by default in develoment mode)CommonsChunkPlugin
was removed ->optimization.splitChunks
,optimization.runtimeChunk
type: "javascript/auto"
when transforming JSON via loader to JSBig features
javascript/esm
handles ESM more strictly compared tojavascript/auto
:default
import, everything else (including namespace import) emit errors.mjs
modules arejavascript/esm
by defaultimport()
sideEffects: false
is now supported in package.jsonsideEffects
in package.json also supports glob expressions and arrays of glob expressionsoptimization.splitChunks
option was introducedDetails: https://gist.github.com/sokra/1522d586b8e5c0f5072d7565c2bee693
import()
occur in a dead branchwebpackInclude
andwebpackExclude
are supported by the magic comment forimport()
. They allow to filter files when using a dynamic expression.System.import()
now emits a warningRule.parser.system: true
System.import
withRule.parser.system: false
module.rules[].resolve
. It's merged with the global configuration.optimization.minimize
has been added to switch minimizing on/offoptimization.minimizer
has been added to configurate minimizers and optionswebpack-cli
to use the CLI--progress
) now displays plugin namesFeatures
module.rules[].type
options.dependencies
configurations now throw errorsideEffects
can be overriden via module.rulesoutput.hashFunction
can now be a Constructor to a custom hash functionoutput.globalObject
config option to allow to choose the global object reference in runtime exitCodetype
andrequest
.include
test
andexclude
to the eval source map devtool pluginfor of
instead offorEach
Map
andSet
instead of Objectsincludes
instead ofindexOf
text/javascript
andasync
as this are the default values (saves a few bytes)__webpack_require__
and argument is omitted.wasm
,.mjs
,.js
and.json
extensions in this orderoutput.pathinfo
is now on by default in develoment modeentry
defaults to./src
output.path
defaults to./dist
production
defaults when omiting themode
option<{parents}>
>{children}<
and={siblings}=
in StatsbuildAt
time to statsimport()
now emits a error instead of a warningdone
is now an async hookBugfixes
*/
output.chunkCallbackName
to the schema to allow configurating WebWorker templatemodule.id/loaded
now correctly bails out of Module Concatentation (Scope Hoisting)Watching.invalidate
-!
behavior with post loadersrun
andwatchRun
hooks forMultiCompiler
this
is now undefined in ESMvar
,const
orlet
javascript/dynamic
orjavascript/module
is used.buildMeta
of nulloriginal-fs
module for electron targetsplugins
Internal changes
plugin
calls withtap
calls (new plugin system)buildMeta.exportsType: "default"
for json modulesneo-async
instead ofasync
Removed features
module.loaders
loaderContext.options
Compilation.notCacheable
flagNoErrorsPlugin
Dependency.isEqualResource
NewWatchingPlugin
CommonsChunkPlugin
Breaking changes for plugins/loaders
plugin
method is backward-compatibleCompiler.hooks.xxx.tap(<plugin name>, fn)
nowChunk.chunks/parents/blocks
are no longer Arrays. A Set is used internally and there are methods to access it.Parser.scope.renames
andParser.scope.definitions
are no longer Objects/Arrays, but Map/Sets.StackedSetMap
(LevelDB-like datastructure) instead of ArraysCompiler.options
is no longer set while applying pluginsDependency.getReference()
may now return aweak
property.Dependency.weak
is now used by theDependency
base class and returned in the base impl ofgetReference()
Module
sContextModule
andresolveDependencies
Compiler.resolvers
intoCompiler.resolverFactory
accessible with pluginsDependency.isEqualResource
has been replaced withDependency.getResourceIdentifier
Template
are now staticoutputOptions
andrequestShortener
has been moved to this classModule.meta
has been replaced withModule.buildMeta
Module.buildInfo
andModule.factoryMeta
have been addedModule
have been moved into the new objectsloaderContext.rootContext
which points to thecontext
options. Loaders may use it to make stuff relative to the application root.this.hot
flag to loader context when HMR is enabledbuildMeta.harmony
has been replaced withbuildMeta.exportsType: "namespace
map/foreach
Chunks/Modules/Parents
methods are now deprecated/removedcreateGenerator
andgenerator
hooks for NormalModuleFactory to customize code generationCommits
The new version differs by 838 commits.
213226e
4.0.0
fde0183
Merge pull request #6081 from webpack/formating/prettier
b6396e7
update stats
f32bd41
fix linting
5238159
run prettier on existing code
518d1e0
replace js-beautify with prettier
4c25bfb
4.0.0-beta.3
dd93716
Merge pull request #6296 from shellscape/fix/hmr-before-node-stuff
7a07901
Merge pull request #6563 from webpack/performance/assign-depth
c7eb895
Merge pull request #6452 from webpack/update_acorn
9179980
Merge pull request #6551 from nveenjain/fix/templatemd
e52f323
optimize performance of assignDepth
6bf5df5
Fixed template.md
90ab23a
Merge branch 'master' into fix/hmr-before-node-stuff
b0949cb
add integration test for spread operator
There are 250 commits in total.
See the full diff
FAQ and help
There is a collection of frequently asked questions. If those don’t help, you can always ask the humans behind Greenkeeper.
Your Greenkeeper bot 🌴