1
- Managing CSS and JavaScript
2
- ===========================
3
-
4
- .. admonition :: Screencast
5
- :class: screencast
6
-
7
- Do you prefer video tutorials? Check out the `Webpack Encore screencast series `_.
8
-
9
- Symfony ships with a pure-JavaScript library - called Webpack Encore - that makes
10
- it a joy to work with CSS and JavaScript. You can use it, use something else, or
11
- create static CSS and JS files in your ``public/ `` directory directly and
12
- include them in your templates.
1
+ Introduction
2
+ ============
3
+
4
+ Symfony gives you the flexibility to choose any front-end tools you want. This could
5
+ be dead-simple - like putting CSS & JS directly in the ``public/ `` directory - or
6
+ more advanced - like scaffolding your front-end with a tool like Next.js.
7
+
8
+ However, Symfony *does * come with two powerful option to help you build a modern,
9
+ fast frontend, *and * enjoy the process:
10
+
11
+ * :ref: `Webpack Encore <frontend-webpack-encore >` is a powerful tool built with Node
12
+ on top of `Webpack `_ that allows you to write modern CSS & JavaScript and handle
13
+ things like JSX (React), Vue or TypeScript.
14
+
15
+ * :ref: `AssetMapper <frontend-asset-mapper >`, is a production-ready simpler alternative
16
+ to Webpack Encore that runs entirely in PHP. It's currently experimental.
17
+
18
+ ========================================== ================= ======================================================
19
+ Encore AssetMapper
20
+ ========================================== ================= ======================================================
21
+ Production Ready? yes yes
22
+ Stable? yes :doc: `experimental </contributing/code/experimental >`
23
+ Requirements node none: pure PHP
24
+ Requires a build step? yes no
25
+ Works in all browsers? yes yes
26
+ Supports :doc: `Stimulus/UX </frontend/ux >` yes yes
27
+ Supports Sass/Tailwind yes :ref: `yes <asset-mapper-tailwind >`
28
+ Supports React, Vue, Svelte? yes yes**
29
+ Supports TypeScript yes no**
30
+ ========================================== ================= ======================================================
31
+
32
+ ** Using JSX (React), Vue or TypeScript with AssetMapper is possible, but you'll
33
+ need to use their native tools for pre-compilation. Also, some features (like
34
+ Vue single-file components) cannot be compiled down to pure JavaScript that can
35
+ be executed by a browser.
13
36
14
37
.. _frontend-webpack-encore :
15
38
16
39
Webpack Encore
17
40
--------------
18
41
42
+ .. screencast ::
43
+
44
+ Do you prefer video tutorials? Check out the `Webpack Encore screencast series `_.
45
+
19
46
`Webpack Encore `_ is a simpler way to integrate `Webpack `_ into your application.
20
47
It *wraps * Webpack, giving you a clean & powerful API for bundling JavaScript modules,
21
48
pre-processing CSS & JS and compiling and minifying assets. Encore gives you professional
@@ -84,26 +111,39 @@ Full API
84
111
85
112
* `Full API `_
86
113
114
+ .. _frontend-asset-mapper :
115
+
116
+ AssetMapper
117
+ -----------
118
+
119
+ AssetMapper is an alternative to Webpack Encore that runs entirely in PHP
120
+ without any complex build steps. It leverages the ``importmap `` feature of
121
+ your browser, which is available in all browsers thanks to a polyfill.
122
+ AssetMapper is currently :doc: `experimental </contributing/code/experimental >`.
123
+
124
+ :doc: `Read the AssetMapper Documentation </frontend/asset_mapper >`
125
+
87
126
Symfony UX Components
88
127
---------------------
89
128
129
+ * :doc: `/frontend/ux `
130
+
90
131
.. include :: /frontend/_ux-libraries.rst.inc
91
132
92
133
Other Front-End Articles
93
134
------------------------
94
135
136
+ * :doc: `/frontend/create_ux_bundle `
137
+ * :doc: `/frontend/custom_version_strategy `
138
+
95
139
.. toctree ::
96
140
:hidden:
97
141
:glob:
98
142
99
143
frontend/encore/installation
100
144
frontend/encore/simple-example
101
145
frontend/encore/*
102
-
103
- .. toctree ::
104
- :maxdepth: 1
105
- :glob:
106
-
146
+ frontend/asset_mapper
107
147
frontend/*
108
148
109
149
.. _`Webpack Encore` : https://www.npmjs.com/package/@symfony/webpack-encore
0 commit comments