Skip to content

Releases: symfony/webpack-encore

v0.22.2: Important bug fixes to versioning & caching

29 Nov 15:58
Compare
Choose a tag to compare

This bug fix release includes several important changes that fix some versioning bugs and improve caching.

To upgrade: yarn upgrade

Changes: v0.22.1..v0.22.2

Highlights:

  • Fix an issue where JavaScript files might change, but their versioning hash filename would NOT change - causing problems where users would use out-of-date cached assets, instead of dowloading the new ones. This works by, internall, using the names of modules in compiled files. This bug only affected users using enableSingleRuntimeChunk() - #462

  • Fixed a bug where certain content changes to a JavaScript file would not cause the versioning hash to update. This relates to the first fixed bug. Due to the changing in how hashing works, all JavaScript files will have a new hash the first time after upgrading - #463

  • Fixed a bug with splitEntryChunks() where some filenames and contents of files would change unnecessarily. This did not cause any bad behavior, but meant that users would unnecessarily download new assets, that really didn't need to change between builds. As a result, you'll notice that instead of split chunks named something like vendors~abc123.js, in production, they will be called 0.js or some other integer. This makes no functional difference - #462

v0.22.1 Bug fix for production sourcemaps

17 Nov 20:25
Compare
Choose a tag to compare

Just a bug fix release!

  • Bug #454 was fixed, where a recent change made CSS sourcemaps always output in production.

v0.22.0 [BC Break] Change to Opening Slash in entrypoints.json

17 Nov 20:24
Compare
Choose a tag to compare

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

16 Nov 14:23
Compare
Choose a tag to compare

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!

05 Nov 18:21
Compare
Choose a tag to compare

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() and encore_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()
    or Encore.disableSingleRuntimeChunk(): not calling either method is
    deprecated. The recommended setting is Encore.enableSingleRuntimeChunk().
    This will cause a new runtime.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 above enableSingleRuntimeChunk() 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 new browserslist key to your package.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 the optimizations.splitChunks configuration.

  • A new entrypoints.json file is now always output. For expert
    use-cases, the optimizations.splitChunks.chunks configuration
    can be set via configureSplitChunks() to all. Then, you
    can write some custom server-side code to parse the entrypoints.js
    so that you know which script and link 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 calling enableHandlebarsLoader().
    #301 thanks to @ogiammetta

  • Support was added for eslint-loader by calling enableEslintLoader().
    #243 thanks to @pinoniq

  • The css-loader can now be configured by calling configureCssLoader().
    #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 to configureBabel() - #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 from babel-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 using configureUglifyJsPlugin(), please switch to
    configureTerserPlugin() instead.

v0.20.1

21 Apr 00:21
Compare
Choose a tag to compare

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

14 Apr 18:59
Compare
Choose a tag to compare

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

  • Fixed bug with using --stats option #299 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

12 Feb 20:09
Compare
Choose a tag to compare

🌈 & 🦄'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:

v0.18.0

11 Feb 00:59
Compare
Choose a tag to compare

Go team! New Release!

To upgrade: yarn upgrade

Changes: v0.17.2..v0.18.0

Documentation: http://symfony.com/doc/current/frontend.html

Highlights:

  • Added Encore.addAliases() and Encore.addExternal() shortcut methods
    #217 via @Lyrkan

  • Fixed hash lengths - normalized all to 8 - #216 via @Lyrkan

  • Added CoffeeScript loader - #201 via @harentius

v0.17.2

30 Jan 20:00
Compare
Choose a tag to compare

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