PostCSS and autoprefixing (postcss-loader)
Edit this pageWarning: You are browsing the documentation for Symfony 4.0, which is no longer maintained.
Read the updated version of this page for Symfony 6.0 (the current stable version).
PostCSS and autoprefixing (postcss-loader)
PostCSS is a CSS post-processing tool that can transform your CSS in a lot of cool ways, like autoprefixing, linting and more!
First, download postcss-loader
and any plugins you want, like autoprefixer
:
1
$ yarn add --dev postcss-loader autoprefixer
Next, create a postcss.config.js
file at the root of your project:
1 2 3 4 5 6 7 8 9
module.exports = {
plugins: {
// include whatever plugins you want
// but make sure you install these via yarn or npm!
// add browserslist config to package.json (see below)
autoprefixer: {}
}
}
Then, Enable the loader in Encore!
1 2 3 4 5 6
// webpack.config.js
Encore
// ...
+ .enablePostCssLoader()
;
That's it! The postcss-loader
will now be used for all CSS, Sass, etc files.
You can also pass options to the postcss-loader by passing a callback:
1 2 3 4 5 6 7 8 9 10
// webpack.config.js
Encore
// ...
+ .enablePostCssLoader((options) => {
+ options.config = {
+ path: 'config/postcss.config.js'
+ };
+ })
;
Adding browserslist to package.json
The autoprefixer
(and many other tools) need to know what browsers you want to
support. The best-practice is to configure this directly in your package.json
(so that all the tools can read this):
1 2 3
{
+ "browserslist": [ "last 2 versions", "ios >= 8" ]
}
See browserslist for more details on the syntax.
Note
Encore uses babel-preset-env, which also needs to know which browsers you
want to support. But this does not read the browserslist
config key. You
must configure the browsers separately via configureBabel().