Skip to content

Releases: symfony/webpack-encore

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

v0.17.1

31 Dec 00:49
Compare
Choose a tag to compare

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

07 Nov 19:56
Compare
Choose a tag to compare

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:

  • Added build notifications by calling Encore.enableBuildNotifications() -
    #190 via @Lyrkan

  • Added Stylus support via Encore.enableStylusLoader() - #195
    via @mneuhaus