Managing CSS and JavaScript
Edit this pageWarning: You are browsing the documentation for Symfony 3.3, which is no longer maintained.
Read the updated version of this page for Symfony 6.3 (the current stable version).
Managing CSS and JavaScript
Symfony ships with a pure-JavaScript library - called Webpack Encore - that makes
working with CSS and JavaScript a joy. You can use it, use something else, or just
create static CSS and JS files in your web/
directory and include them in your
templates.
Webpack Encore
Webpack Encore is a simpler way to integrate Webpack into your application. It wraps Webpack, giving you a clean & powerful API for bundling JavaScript modules, pre-processing CSS & JS and compiling and minifying assets. Encore gives you professional asset system that's a delight to use.
Encore is inspired by Webpacker and Mix, but stays in the spirit of Webpack: using its features, concepts and naming conventions for a familiar feel. It aims to solve the most common Webpack use cases.
Tip
Encore is made by Symfony and works beautifully in Symfony applications. But it can easily be used in any application... in any language!
Assetic
Assetic is a pure PHP library that helps to process & optimize your assets (similar to Encore). Even though we recommend using Encore, Assetic still works great. For a comparison, see Encore Versus Assetic?.
For more about Assetic, see Assetic.
Other Front-End Articles
- Assetic
- How to Apply an Assetic Filter to a specific File Extension
- How to Use Assetic for Asset Management
- How to Use Assetic for Image Optimization with Twig Functions
- Combining, Compiling and Minimizing Web Assets with PHP Libraries
- How to Minify CSS/JS Files (Using UglifyJS and UglifyCSS)
- How to Minify JavaScripts and Stylesheets with YUI Compressor
- How to Use a Custom Version Strategy for Assets
- Advanced Webpack Config
- Configuring Babel
- Using Bootstrap CSS & JS
- Using a CDN
- CSS Preprocessors: Sass, LESS, etc.
- Adding Custom Loaders & Plugins
- Using webpack-dev-server and HMR
- FAQ and Common Issues
- Encore Installation
- jQuery and Legacy Applications
- Creating Page-Specific CSS/JS
- PostCSS and autoprefixing (postcss-loader)
- Enabling React.js
- Passing Information from Twig to JavaScript
- Creating a Shared Commons Entry
- First Example
- Enabling Source Maps
- Enabling TypeScript (ts-loader)
- Asset Versioning
- Encore Versus Assetic?
- Enabling Vue.js (vue-loader)