Managing CSS and JavaScript
Warning: You are browsing the documentation for Symfony 3.x, which is no longer maintained.
Read the updated version of this page for Symfony 7.1 (the current stable version).
Screencast
Do you prefer video tutorials? Check out the Webpack Encore screencast series.
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 be used in any PHP application and even with other server side programming languages!
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
- Async Code Splitting
- Copying & Referencing Images
- CSS Preprocessors: Sass, LESS, Stylus, etc.
- Adding Custom Loaders & Plugins
- Using webpack-dev-server and HMR
- FAQ and Common Issues
- Installing Encore
- jQuery Plugins 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
- Encore: Setting up your Project
- Enabling Source Maps
- Preventing Duplication by "Splitting" Shared Code into Separate Files
- Enabling TypeScript (ts-loader)
- Inlining files in CSS with Webpack URL Loader
- Asset Versioning
- Encore Versus Assetic?
- Using Encore in a Virtual Machine
- Enabling Vue.js (vue-loader)