Releases: symfony/webpack-encore
v0.22.0 [BC Break] Change to Opening Slash in entrypoints.json
Ok! A new release! This one contains a minor, but important BC break:
- [BC BREAK] The values/paths in entrypoints.json were previously
stripped of their opening slash. That behavior has been changed:
the opening slash is now included: Before:build/foo.js
, After:/build/foo.js
.
For Symfony users with a standard setup, this should not be noticeable as the paths were already "fixed" via the manifest.json lookup.
Bug fixes & updating dependencies
What's better than Encore on Webpack 4? Encore on Webpack 4 with a few bugs squashed!
Highlights:
- #439 updating resolve.extensions to include webpack4 default extensions
- #440 updating css-loader dep and ts-loader dev dep
- #441 Appending the _tmp_shared contents via an earlier hook
- #451 pretty-printing entrypoints.json
Happy Webpacking!
v0.21.0: The Webpack 4 Release!
Webpack 4 and so much more 🎇! This is a huge release that contains some backwards-compatibility breaks or changes.
To upgrade, change your version constraint to ^0.21.0
and run yarn upgrade
.
You may also need to make a few other changes if you're a Symfony user:
composer require symfony/webpack-encore-bundle
- Replace your manual script and link tags with the new
encore_entry_script_tags()
andencore_entry_link_tags()
functions from that bundle.
Highlights
-
[BC BREAK] Webpack was upgraded to version 4. This includes a number of major
and minor changes. The changes are listed below under the
Webpack 4 Upgrade
section. -
[DEPRECATION] You must now call either
Encore.enableSingleRuntimeChunk()
orEncore.disableSingleRuntimeChunk()
: not calling either method is
deprecated. The recommended setting isEncore.enableSingleRuntimeChunk()
.
This will cause a newruntime.js
file to be created, which must be included
on your page with a script tag (before any other script tags for Encore
JavaScript files). See the documentation aboveenableSingleRuntimeChunk()
in
index.js
for more details. -
[BEHAVIOR CHANGE] Previously, without any config, Babel was
configured to "transpile" (i.e. re-write) your JavaScript so
that it was compatible with all browsers that currently have
more than 1% of the market share. The new default behavior
is a bit more aggressive, and may rewrite even more code to
be compatible with even older browsers. The recommendation
is to add a newbrowserslist
key to yourpackage.json
file
that specifies exactly what browsers you need to support. For
example, to get the old configuration, add the following to
package.json
:
{
"browserslist": "> 1%"
}
See the browserslist library
for a full description of all of the valid browser descriptions.
-
Added a new
copyFiles()
method that is able to copy static files
into your build directory and allows them to be versioned. #409
thanks to @Lyrkan -
Introduced a new
configureSplitChunks()
method that can be
used to further configure theoptimizations.splitChunks
configuration. -
A new
entrypoints.json
file is now always output. For expert
use-cases, theoptimizations.splitChunks.chunks
configuration
can be set viaconfigureSplitChunks()
toall
. Then, you
can write some custom server-side code to parse theentrypoints.js
so that you know whichscript
andlink
tags are needed for
each entry. -
The "dynamic import" syntax is now supported out of the box
because the@babel/plugin-syntax-dynamic-import
babel plugin
is always enabled. This allows you to do "Dynamic Imports"
as described here: https://webpack.js.org/guides/code-splitting/#dynamic-imports -
A new "version check" system was added for optional dependencies.
Now, when you install optional plugins to support a feature, if
you are using an unsupported version, you will see a warning.
"Package recommendation" errors (i.e. when you enable a feature
but you are missing some packages) will also contain the version
in the install string when necessary (e.g.yarn add foo@^2.0
). -
Support was added
handlebars-loader
by callingenableHandlebarsLoader()
.
#301 thanks to @ogiammetta -
Support was added for
eslint-loader
by callingenableEslintLoader()
.
#243 thanks to @pinoniq -
The
css-loader
can now be configured by callingconfigureCssLoader()
.
#335 thanks to @XWB -
It's now possible to control the
exclude
for Babel so that you can
process certain node_modules packages through Babel - use
the new second argument toconfigureBabel()
- #401 thanks to
@Lyrkan.
Webpack 4 Upgrade Details
-
Node 7 is no longer supported. This is because the new
mini-css-extract-plugin
does not support it (and neither)
does Yarn. -
For Preact, the necessary plugin the user needs to install
changed frombabel-plugin-transform-react-jsx
to@babel/plugin-transform-react-jsx
. -
The NamedModulesPlugin was removed.
-
The
babel-preset-env
package (which was at version ^1.2.2) was
removed in favor of@babel/preset-env
. -
ExtractTextPlugin was removed and replaced with
mini-css-extract-plugin. Accordingly,extractTextPluginOptionsCallback()
was removed. -
Support for CoffeeScript was entirely removed.
-
Actual lang="sass" no longer works for Vue. However, lang="scss"
continues to work fine. -
uglifyjs-webpack-plugin was replaced by terser-webpack-plugin.
If you're usingconfigureUglifyJsPlugin()
, please switch to
configureTerserPlugin()
instead.
v0.20.1
A new release! But, a boring one - just one fixed mistake.
To upgrade: yarn upgrade
Changes: v0.20.0..v0.21.1
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
- Upgraded webpack-manifest-plugin from 2.0.0 RC1 to ^2.0.0.
The original RC version was not meant to be used in a release.
#306 via @weaverryan
v0.20.0
Yes! New Release! Features! Fixes! Action! Progress! ⏩ 💯
To upgrade: yarn upgrade
Changes: v0.19.0..v0.20.0
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
-
Added
Encore.configureUrlLoader()
method that allows you
to inline smaller images/file assets for better performance
#296 via @Lyrkan -
Improved error messages that recommend using yarn vs npm
#291 via @Lyrkan -
Allow configuration callbacks to return their value
#300 via @Lyrkan -
Updated to use the new v2 of webpack-manifest-plugin
#164 via @weaverryan
v0.19.0
🌈 & 🦄's! It's a new Release!
To upgrade: yarn upgrade
Changes: v0.18.0..v0.19.0
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
- Updated how Encore is exported to support better IDE auto-completion
#263 via @florentdestremau
v0.18.0
Go team! New Release!
To upgrade: yarn upgrade
Changes: v0.17.2..v0.18.0
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
v0.17.2
Yes! New Release!
To upgrade: yarn upgrade
Changes: v0.17.1..v17.0.2
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
- Allowed relative paths to be used in
setPublicPath()
- #196
v0.17.1
Yes! New Release!
To upgrade: yarn upgrade
Changes: v0.17.0..v0.17.1
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
v0.17.0
Yes! I love the number 17!
To upgrade: yarn upgrade
Changes: v0.16.0..v0.17.0
Documentation: http://symfony.com/doc/current/frontend.html
Highlights: