Bot releases are visible (Hide)
Published by weaverryan over 4 years ago
Hi friends!
This release disables the cleanStaleWebpackAssets
in clean-webpack-plugin
by default to fix a bug where - in watch
mode - some images or fonts would be incorrectly deleted. See #772 - thanks to @weaverryan.
To upgrade:
Update your package.json
file: set the @symfony/webpack-encore
version to ^0.30.2
.
Run yarn upgrade
!
https://github.com/symfony/webpack-encore/compare/v0.30.1...v0.30.2
Happy packing!
Published by weaverryan over 4 years ago
Hi friends!
This is a small release that reverts a change made in 0.30.0 related to Vue and a "full" build. See #769 for more details.
To upgrade:
Update your package.json
file: set the @symfony/webpack-encore
version to ^0.30.1
.
Run yarn upgrade
!
https://github.com/symfony/webpack-encore/compare/v0.30.0...v0.30.1
Happy packing!
Published by weaverryan over 4 years ago
Hi friends!
This is a big release that contains major upgrades to packages that Encore (and your app) depends on. Some of these upgrades may affect your app. Please check out the details below to learn more.
Changes: https://github.com/symfony/webpack-encore/compare/v0.29.1...v0.30.0
[BC BREAK] The Vue "build" was changed from vue.esm.js
(full build) to vue.runtime.esm.js
(runtime build). With the runtime build, there are two things that you cannot do:
A) You cannot pass a string to template
:
new Vue({
template: '<div>{{ hi }}</div>'
})
B) You cannot mount to a DOM element and use its HTML as your template:
new Vue({
el: '#app', // where <div id="app"> contains your Vue template
});
If you need this behavior, call Encore.addAliases({ vue$: 'vue/dist/vue.esm.js' });
[DEPENDENCY UPGRADE] sass-loader
was upgraded from version 7 to 8.
See the CHANGELOG for breaking changes. This likely will not affect you unless you pass custom options to Encore.enableSassLoader()
: several options were moved or renamed - #758 thanks to @Kocal.
[BEHAVIOR CHANGE] Encore now resolves loaders directly from its node_modules/
, instead of by name. This change will cause a behavior change if you do any of the following:
Add a different version of a loader (that Encore embeds) into your package.json
: the different loader won't be used anymore.
Require a package that also included one of our embedded loaders: depending on which one was hoisted it could result in different behavior.
Manipulate the generated config and filter loaders based on their names: the comparison won't be the same anymore
See #739 thanks to @Lyrkan.
[DEPENDENCY UPGRADE] Webpack minimum version was changed from 4.20.0
to 4.36.0
- see #746 and #758.
[DEPENDENCY UPGRADE] Upgraded clean-webpack-plugin
from ^0.1.19
to ^3.0.0
. You should not notice significant changes unless you use Encore.cleanupOutputBeforeBuild()
and pass custom options. For more info, see v1 to v2 upgrade notes and v2 to v3 upgrade notes. There were no changes from 0.1.19
to 1.0.0
. See #760 thanks to @weaverryan.
Encore will now correctly recognize a project-wide babel.config.js
file - #738 thanks to @jdreesen.
[DEPENDENCY UPGRADE] The fork-ts-checker-webpack-plugin
package was upgraded for the tests from ^0.4.1
to ^4.0.0
. If you're using enableForkedTypeScriptTypesChecking()
, you control the fork-ts-checker-webpack-plugin
version in your package.json
file. You should upgrade to ^4.0.0
to ensure that the plugin works correctly with Encore. See fork-ts-checker-webpack-plugin for details about the changes. See #759 thanks to @weaverryan.
Added support for Vue3 - #746 thanks to @weaverryan.
Happy Packing!
Published by weaverryan over 4 years ago
Hi friends!
This release fixes an oversight when using ESLint version 6:
To upgrade:
Update your package.json
file: set the @symfony/webpack-encore
version to ^0.29.1
.
Run yarn upgrade
!
Changes: v0.29.0..v0.29.1
Documentation: http://symfony.com/doc/current/frontend.html
Happy packing!
Published by weaverryan over 4 years ago
Hi friends!
To upgrade:
Update your package.json
file: set the @symfony/webpack-encore
version to ^0.29.0
.
Run yarn upgrade
!
Changes: v0.28.3..v0.29.0
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
Support for Node 8 was dropped.
[BC BREAK] Several loader dependencies we upgraded across major versions.
These won't affect most users, but could affect you if you have custom
configuration for those loaders that changed between versions:
css-loader
upgraded from version 2 to 3 - #729 thanks to @weaverryan.
CHANGELOG
This shouldn't affect most users - you are most likely to be affected
if you're using Encore.configureCssLoader()
.
style-loader
upgraded from 0.21 to 1.1 - #710 thanks to @Grafikart.
CHANGELOG
Unless you're doing custom configuration, it's unlikely you're affected.
file-loader
upgraded from 1.1 to 6 - #731 thanks to @weaverryan.
CHANGELOG
If you are importing images/fonts using the CommonJS syntax (require('foo.png')
),
you will now need to explicitely retrieve the default export (require('foo.png').default
)
in order to get the path of the file.
Imports done using the import
keyword should not be affected.
url-loader
upgraded from allowing version 1 or 2 to allowing version 4 - #731 thanks to @weaverryan.
CHANGELOG
Unless you're doing custom configuration, it's unlikely you're affected.
[BC BREAK] If you're using enableEslintLoader()
, Encore no longer
configures eslint for you: you now must configure your own
.eslintrc.js
file. If this is missing, you'll now get a nice
error about this telling you how to fix it - #687 thanks to @Kocal.
Added Encore.enableBabelTypeScriptPreset()
to "compile" TypeScript with
Babel, which is a more performant option than ts-loader
- #694
thanks to @Kocal.
Added Encore.configureDevServerOptions()
as an easy way to configure
dev-server options - #693 thanks to @Kocal.
Added Encore.addCacheGroup()
method as an easy way to add custom
caching groups - #680 thanks to @Lyrkan.
Include the .pcss extension for PostCSS files - #718 thanks to @opdavies
Added Encore.configureStyleLoader()
to configure the style-loader
- #715
thanks to @tooltonix.
Added lintVue: true
option to Encore.enableEslintLoader()
to explicitly
turn on linting of Vue files (which requires the vue-eslint-parser
package) - #574 thanks to @Kocal.
Have packing!
Published by weaverryan over 4 years ago
Hi!
Just one small bug fix for this release:
#697 Fix source maps being generated by default in dev (thanks to @Lyrkan)
Happy packing!
Published by weaverryan almost 5 years ago
Yes! New Release!
This release adds some missing documentation and removes some deprecations.
To upgrade, run yarn upgrade
!
Changes: v0.28.1..v0.28.2
Documentation: http://symfony.com/doc/current/frontend.html
Happy packing!
Published by weaverryan almost 5 years ago
Yes! New Release!
#669 Fixing postcss error: newer versions seem to have a "Syntax Error: name - this PR also removed 2 unused dependencies: lodash
and fs-extra
.
#642 Allow to configure babel env preset (thanks to @ihmels)
#639 bug #638 sass-loader should not do css minification (thanks to @wimhendrikx)
#627 Allow to overwrite pre-defined aliases using addAliases() (thanks to @Lyrkan)
To upgrade, run yarn upgrade
!
Changes: v0.28.0..v0.28.1
Documentation: http://symfony.com/doc/current/frontend.html
Happy packing!
Published by weaverryan about 5 years ago
Friends! A new release is here!
To upgrade:
Update your package.json
file: set the @symfony/webpack-encore
version to ^0.28.0
.
Run yarn upgrade
!
Changes: v0.27.0..v0.28.0
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
Don't make @babel/preset-env
use forceAllTransforms
option
in production - this will reduce build size in production
for environments that only need to support more modern
browsers - #612 thanks to @Lyrkan.
Added support with enablePostCssLoader()
to process files
ending in .postcss
or using lang="postcss"
in Vue - #594
thanks to @Lyrkan.
Allow resolve-url-loader
to be configured via enableSassLoader()
-
#603 thanks to @diegocardoso93.
Support was removed from Node 9 (a no-longer-supported version
of Node) - #585 thanks to @weaverryan
Published by weaverryan over 5 years ago
Zoinks! Another release is ready!
To upgrade:
Update your package.json
file: set the @symfony/webpack-encore
version to ^0.27.0
.
Run yarn upgrade
!
Changes: v0.26.0..v0.27.0
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
[Behavior Change] The Babel configuration sourceType
default was
changed from not being specified (so, the default module
was used)
to unambiguous
. This is to help Babel's useBuiltIns
functionality
properly determine if a require
or import
should be automatically
added to your files, based on that file's style - #555 thanks to @Lyrkan.
Added JSX support to Vue! #553 thanks to @Kocal.
Cleaned up the jsdoc in index.js
to add better docs and better
IDE auto-completion - #550 thank sto @Lyrkan.
Happy packing!
Published by weaverryan over 5 years ago
We did it! Another release! 🥇
To upgrade:
Update your package.json
file: set the @symfony/webpack-encore
version to ^0.26.0
.
Run yarn upgrade
!
Changes: v0.25.0..v0.26.0
[Behavior change] The Babel useBuiltIns
option default value changed
from entry
to false
, which means that polyfills may no longer be
provided in the same way. This is due to a change in Babel and core-js.
To get the same functionality back, run yarn add core-js --dev
, then use:
Encore.configureBabel(() => {}, {
useBuiltIns: 'entry', // or try "usage"
corejs: 3
})
This comes from #545 thanks to @Lyrkan.
Added the ability to "resolve" CSS and Sass files without specifying
the file extension and by taking advantage of the sass
or style
attribute in an npm package. For example, you can now import the main
Bootstrap SASS file from within a SASS file by saying @import ~bootstrap
.
This will use the sass
attribute from the bootstrap package.json
file to find which file to load. #474 thanks to @deAtog.
Added a new Encore.enableIntegrityHashes()
, which will cause a new
integrity
key to be added to entrypoints.json
with integrity values
that can be included in the script
or link
tag for that asset - #522
thanks to @Lyrkan.
Allow some parts of configureBabel()
to be used, even if there is
an external .babelrc
configuration file - #544 thanks to @Lyrkan.
Published by weaverryan over 5 years ago
We did it! Another release!
To upgrade: yarn upgrade
Changes: v0.24.0..v0.25.0
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
[BC BREAK] Various dependency versions were updated, including
css-loader
updated from ^1.0.0
to ^2.1.1
and resolve-url-loader
updated from ^2.3.0
to ^3.0.1
. The minimum Node version was
also bumped from 6 to 8. See #540 for more details.
Added Encore.disableCssExtraction()
if you prefer your CSS to
be output via the style-loader
- #539 thank to @Lyrkan.
Added Encore.configureLoaderRule()
as a way to configure the
loader config that Encore normally handles - #509 thanks to @Kocal.
Babel cache is no longer used for production builds to avoid a
bug where the cache prevents browserslist from being used - #516
thanks to @Lyrkan.
Published by weaverryan over 5 years ago
Hi friends!
Ah, another nice release powered by the community!
Changes: v0.22.4..v0.23.0
Highlights:
Add support for CSS modules in Vue - #508 thanks to @Lyrkan
Store externals in an array - #495 thanks to @deAtog
Add Encore.isRuntimeEnvironmentConfigured()
- #500 thanks
to @stof.
Add the ability to configure watch options - #486 thanks
to @Kocal
Enabled cache and parallelism for terser for faster builds -
#497 thanks to @Kocal
Published by weaverryan almost 6 years ago
Yes! A new release - but just some minor fixes.
To upgrade: yarn upgrade
Changes: v0.22.3..v0.22.4
Documentation: http://symfony.com/doc/current/frontend.html
Highlights:
isDev()
and isDevServer()
- thanks to @KocalPublished by weaverryan almost 6 years ago
A quick security release!
To upgrade: yarn upgrade
Changes: v0.22.2..v0.22.3
Documentation: http://symfony.com/doc/current/frontend.html
See #481 - this release guarantees that you are using a version of webpack-dev-server
that does not contain the security issue.
Published by weaverryan almost 6 years ago
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
Published by weaverryan almost 6 years ago
Just a bug fix release!
Published by weaverryan almost 6 years ago
Ok! A new release! This one contains a minor, but important BC break:
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.
Published by weaverryan almost 6 years ago
What's better than Encore on Webpack 4? Encore on Webpack 4 with a few bugs squashed!
Highlights:
Happy Webpacking!
Published by weaverryan almost 6 years ago
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
encore_entry_script_tags()
and encore_entry_link_tags()
functions from that bundle.[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.
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.