Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
5.0_ Major dependency upgrades and deprecated features deletion, less dependencies_ Encore on a diet! source code.tar.gz | 2024-09-29 | 3.6 MB | |
5.0_ Major dependency upgrades and deprecated features deletion, less dependencies_ Encore on a diet! source code.zip | 2024-09-29 | 3.8 MB | |
README.md | 2024-09-29 | 7.4 kB | |
Totals: 3 Items | 7.4 MB | 0 |
Hey packagers!
Exactly one month after the last release, this new major release is now ready to be used! 🎉
This new version contains many changes, in a nutshell:
- removal of support for Node.js 19 and 21
- deletion of deprecated features, such as support for Vue 2 and ESLint.
- removal of support for webpack-cli@4
and webpack-dev-server@4
,
- update to sass-loader@16
, css-loader@7
and css-minimizer-webpack-plugin@7
- makes Webpack dev-server optional
- and much more... see the full changelog below!
With all these modifications, we were able to lighten @symfony/webpack-encore
by removing ~220 dependencies comparing to the version 4.7.0, thus reducing installation times and disk writing, but also reducing the possibility of installing a dependency containing a vulnerability:
Package info for "@symfony/webpack-encore@4.7.0": 61 MB
Released: 2024-08-29 16:26:01.762 +0000 UTC (4w3d ago)
Downloads last week: 27,421 (16.14%)
Estimated traffic last week: 1.7 TB
Subdependencies: 628
Package info for "@symfony/webpack-encore@5.0.0": 53 MB
Released: 2024-09-29 20:08:45.238 +0000 UTC (1m20s ago)
Downloads last week: N/A (N/A%)
Estimated traffic last week: N/A
Subdependencies: 408
Estimated new statistics:
Package size: 61 MB → 53 MB (86.01%)
Subdependencies: 628 → 408 (-220)
Traffic with last week's downloads:
For current version: 1.7 TB → 1.4 TB (235 GB saved)
For all versions: 10 TB → 9.0 TB (1.5 TB saved)
Features
-
[#1344] Add options configuration callback to
Encore.enableReactPreset()
(@Kocal) -
[#1345] Add support for integrity hashes when asset names contain a query string (@Kocal)
BC Breaks
-
[#1321] Drop support of Node.js 19 and 21 (@Kocal)
-
[#1307] Drop
webpack-cli
4 support, onlywebpack-cli
^5.1.4 is supported (@Kocal) -
[#1318] Drop webpack-dev-server 4 support, only webpack-dev-server 5 is supported (@Kocal)
The dev-server options have changed between versions 4 and 5, see the official migration guide to v5. For example:
:::js
// With webpack-dev-server 4:
Encore.configureDevServerOptions((options) => {
options.https = {
ca: "./path/to/server.pem",
pfx: "./path/to/server.pfx",
key: "./path/to/server.key",
cert: "./path/to/server.crt",
passphrase: "webpack-dev-server",
requestCert: true,
};
});
// With webpack-dev-server 5 (now):
Encore.configureDevServerOptions((options) => {
options.server = {
type: 'https',
options: {
ca: "./path/to/server.pem",
pfx: "./path/to/server.pfx",
key: "./path/to/server.key",
cert: "./path/to/server.crt",
passphrase: "webpack-dev-server",
requestCert: true,
}
};
});
- [#1336] Make
webpack-dev-server
dependency optional (@Kocal)
The webpack-dev-server
package is now an optional peer dependency.
It has been removed because some projects may not use it, and it was installing a bunch of unnecessary dependencies.
Removing the webpack-dev-server
dependency from Encore reduces the number of dependencies from 626 to 295 (-331!),
it helps to reduce the size of the node_modules
directory and the number of possible vulnerabilities.
To use the webpack-dev-server
again, you need to install it manually:
:::shell
npm install webpack-dev-server --save-dev
# or
yarn add webpack-dev-server --dev
# or
pnpm install webpack-dev-server --save-dev
-
[#1308] Drop Vue 2 support (End-Of-Life), only Vue 3 is supported (@Kocal)
-
[#1309] Drop ESLint integration (@Kocal)
-
[#1313] Drop
clean-webpack-plugin
in favor of webpack'soutput.clean
configuration. The configuration settings supported byEncore.cleanupOutputBeforeBuild
have changed (@stof) -
[#1324] Drop
css-minimizer-webpack-plugin
5 support, onlycss-minimizer-webpack-plugin
7 is supported (@Kocal) -
[#1342] Replace
assets-webpack-plugin
dependency by an internal plugin, to generateentrypoints.json
file (@Kocal) -
[#1317] Drop support of sass-loader ^13 and ^14, add support for sass-loader ^16 (@Kocal)
The sass-loader's options have changed, the modern
options are now used by default.
Though not recommended,
you must specify the option api: 'legacy'
if you want to keep the legacy
options.
For example:
:::js
// With the legacy API:
Encore.enableSassLoader((options) => {
options.api = 'legacy';
options.includePaths = [/*...*/];
});
// With the modern API (default):
Encore.enableSassLoader((options) => {
options.loadPaths = [/*...*/];
});
- [#1319] Drop support of css-loader ^6, add support for css-loader ^7.1 (@Kocal)
Since css-loader
[7.0.0](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#700,
styles imports became named by default.
It means you should update your code from:
:::js
import style from "./style.css";
console.log(style.myClass);
to:
:::js
import * as style from "./style.css";
console.log(style.myClass);
There is also a possibility to keep the previous behavior by configuring the css-loader
's modules
option:
:::js
config.configureCssLoader(options => {
if (options.modules) {
options.modules.namedExport = false;
options.modules.exportLocalsConvention = 'as-is';
}
});
[!IMPORTANT]
If you use CSS Modules inside.vue
files, until https://github.com/vuejs/vue-loader/pull/1909 is merged and released, you will need to restore the previous behavior by configuring Encore with the code above.
- [#1333] Replace
chalk
bypicocolors
(@Kocal)
Internal
-
[#1325] Remove no-op argument (@stof)
-
[#1327] Fix compat with configuring the devserver server as a string (@stof)
-
[#1328] Remove non-existent option in our package-up utility (@stof)
-
[#1329] Read the controllers.json as string rather than Buffer (@stof)
-
[#1330] Add some types in the internal implementation of Encore (@stof)
-
[#1331] test(deps): replace Zombie by Puppeteer (@Kocal)
-
[#1332] Upgrade locked dependencies (@stof)
-
[#1334] Upgrade the version of stylus used in dev (@stof)
-
[#1335] Fix ESLint warning (@stof)
-
[#1339] Add PR template (@Kocal)
-
[#1343] Add tests for CSS Modules with React and Preact (@Kocal)
Upgrading
Run:
npm install "@symfony/webpack-encore@^5.0.0" --save-dev
or:
yarn upgrade "@symfony/webpack-encore@^5.0.0"
Changes: v4.7.0..v5.0.0
Happy Packing!