SlideShare a Scribd company logo
Integrate	Webpack
in	a	Symfony	app
How	to	?
1 . 1
Me	?
Lead	Developer
SensioLabs
@al0neh
Alain	Hippolyte
1 . 2
Assetic
Transform	assets	via	filters
Not	in	Symfony	Standard	Edition
anymore
2 . 1
2 . 2
Assetic	drawbacks
Not	the	best	DX
Not	content	aware
Not	frontend	dev	friendly
Poorly	maintained
2 . 3
3 . 1
Module	bundler
3 . 2
Module
one	single	functional	unit
https://addyosmani.com/resources/essentialjsdesignpatterns/book/#modulepatternjavascript
3 . 3
Bundler
takes	modules	with	dependencies	and
emits	static	assets	representing	those
modules
like	the	Service	Container	in	Symfony
3 . 4
≠
3 . 5
Features
Loads	source	files
Transforms	assets
Produces	asset	bundles
Generates	artifacts	(hashes,	srcmaps)
Great	DX
3 . 6
How	does	it	work	?
3 . 7
3 . 8
The	4	Core	Concepts
Entries	-	Where	to	start	?
Output	-	Where	to	output	?
Loaders	-	How	to	transform	?
Plugins	-	How	to	bundle	?
4 . 1
webpack.config.js
module.exports	=	{
		entry:	{	...	},
		output:	{	...	},
		module:	{
				rules:	[	...	]
		},
		plugins:	[	...	]
};
4 . 2
Entries
//	shortand	syntax
const	config	=	{
		entry:	'./src/app.js'
};
//	Object	syntax
const	config	=	{
		entry:	{
				app:	'./src/app.js',
				vendor:	'./src/vendor.js'
		}
};
Where	to	start?
4 . 3
Output
module.exports	=	{
				output:	{
								path:	'./web/builds',
								filename:	'bundle.js',
								publicPath:	'/builds/'
				}
};
Where	to	output	?
4 . 4
Loaders
module.exports	=	{
				module:	{
								rules:	[
												{
																test:	/.js$/,
																use:	'babel-loader'
												}
								]
				}
};
How	to	transform	?
4 . 5
Common	loaders
Transpiler	:	babel-loader,	ts-loader
Styles	:	css-loader,	style-loader
Files	:	url-loader,	file-loader
Linting	:	jslint-loader
https://webpack.js.org/loaders/
4 . 6
Plugins
module.exports	=	{
				plugins:	[
								new	webpack.optimize.UglifyJsPlugin()
				]
};
https://webpack.js.org/plugins/
bundle-wide	processing
4 . 7
Getting	Started
5 . 1
Agenda
Entry
Configure	Webpack	with	SCSS	files
Import	fonts
5 . 2
Install	Webpack
1/	Make	a	package.json	file
{
		"name":	"sf-live-2017-symfony-webpack",
		"version":	"1.0.0",
		"devDependencies":	{
				"babel-core":	"^6.24.0",
				"babel-loader":	"^6.4.1",
				"webpack":	"^2.2.1"
		}
}
$	npm	install
$	./node_modules/.bin/webpack
5 . 3
My	first	webpack	entry
//	app/Resources/assets/js/main.js
console.log('Symfony	Live	Paris	2017');
{#	app/Resources/views/base.html.twig	#}
<script	src="{{	asset('builds/bundle.js')	}}"></script>
5 . 4
webpack.config.js
module.exports	=	{
				entry:	{
								app:	'./app/Resources/assets/js/app.js',
				},
				output:	{
								path:	'./web/builds',
								filename:	'bundle.js',
								publicPath:	'/builds/'
				},
				module:	{
								rules:	[
												{
																test:	/.js$/,
																exclude:	/(node_modules)/,
																use:	'babel-loader'
												}
								]
				}
};
5 . 5
./node_modules/.bin/webpack
5 . 6
Add	our	sass	loader
//	app/Resources/assets/scss/app.scss
$icon-font-path:	"~bootstrap-sass/assets/fonts/bootstrap/";
@import	"variables";
@import	"~bootstrap-sass/assets/stylesheets/bootstrap";
@import	"bootstrap-theme";
//	app/Resources/assets/js/app.js
import	'../scss/app.scss';
6 . 1
Install	sass	dependencies
module:	{
				rules:	[
								//	...
+							{
+											test:	/.scss$/,
+											use:	[
+															{	loader:	"style-loader"	},
+															{	loader:	"css-loader"	},
+															{	loader:	"sass-loader"	}
+											]
+								}
				]
};
./node_modules/.bin/webpack
$	npm	install	--save-dev	style-loader	css-loader	node-sass	sass-loader
6 . 2
Houston
we	have	a	problem
6 . 3
//	app/Resources/assets/scss/bootstrap.scss
@font-face	{
		font-family:	'Glyphicons	Halflings';
		src:	url(#{$icon-font-path}glyphicons-halflings-regular.eot'));
		//	...
}
6 . 4
Let's	fix	that	!
module.exports	=	{
				module:	{
								rules:	[
												//	...
+											{
+															test:	/.woff2?$|.ttf$|.eot$|.svg$/,
+															use:	"file-loader"
+											}
								]
				}
};
Install	file-loader	dependency
6 . 5
//	app/Resources/assets/saas/main.scss
//	...
@import	"../css/font-awesome-4.6.3.min.css";
@import	"../css/font-lato.css";
@import	"../css/bootstrap-datetimepicker.min.css";
@import	"../css/highlight-solarized-light.css";
@import	"../css/main.css";
Import	other	styles
6 . 6
12
3 4 5
6
1.	 Google	Font	Lato	import
2.	 Bootstrap
3.	 font-lato.css
4.	 bootstrap-datetimepicker.min.css
5.	 highlight-solarized-light.css
6.	 main.css 6 . 7
Summary
Import	a	bootstrap	theme
Use	Webpack	to	transform	SCSS	files
Use	Webpack	to	work	with	fonts
7
Now,	JS
8 . 1
//	app/Resources/assets/js/app.js
import	"../scss/app.scss";
import	"./jquery-2.1.4.min";
import	"./bootstrap-3.3.4.min";
//	...
Common	problem	with	Webpack
Jquery
Inline	JS
8 . 2
Let's	get	fix	them
8 . 3
Jquery
const	jqueryPath	=	'app/Resources/assets/js/jquery-2.1.4.min.js';
module.exports	=	{
				plugins:	[
								new	webpack.ProvidePlugin({
												$:	"jquery",
												jQuery:	"jquery",
												"window.jQuery":	"jquery",
								}),
				],
				resolve:	{
								alias:	{
												jquery:	path.resolve(__dirname,	jqueryPath)
								}
				},
};
8 . 4
//	login.html.twig
{%	block	javascripts	%}
			{#	...	#}
				<script>
								$(document).ready(function()	{
												var	usernameEl	=	$('#username');
												var	passwordEl	=	$('#password');
												if	(!usernameEl.val()	&&	!passwordEl.val())	{
																usernameEl.val('anna_admin');
																passwordEl.val('kitten');
												}
								});
				</script>
{%	endblock	%}
8 . 5
$	npm	install	--save-dev	expose-loader
rules:	[
+				{
+								test:	/jquery/,
+								use:	[
+												{
+																loader:	'expose-loader',
+																options:	'$'
+												},
+												{
+																loader:	'expose-loader',
+																options:	'jQuery'
+												}
+								]
+				}
]
8 . 6
Everything	is
good	!
8 . 7
Webpack	Dev	Server
9 . 1
$	npm	install	--save-dev	webpack-dev-server
module.exports	=	{
				plugins:	[
								new	webpack.HotModuleReplacementPlugin()
				],
				devServer:	{
								hot:	true,
								contentBase:	'./web/'
				},
				devtool:	'inline-source-map',
};
9 . 2
//	app/AppKernel.php
class	AppKernel	extends	Kernel
{
				public	function	registerContainerConfiguration(LoaderInterface	$loader)
				{
								//...
								$loader->load(function($container)	{
												if	($container->getParameter('use_webpack_dev_server'))	{
																$container->loadFromExtension('framework',	[
																				'assets'	=>	[
																								'base_url'	=>	'http://localhost:8080/'
																				]
																]);
												}
								});
				}
}
Ryan	Weaver
./node_modules/.bin/webpack-dev-server
9 . 3
Prepare	for
production
10 . 1
10 . 2
module.exports	=	{
				module:	{
								rules:	[{
																	test:	/.scss$/,
+																use:	ExtractTextPlugin.extract({
+																				fallback:	'style-loader',
+																				use:	['css-loader',	'sass-loader']
+																})
								}]
				},
				plugins:	[
+								new	ExtractTextPlugin('app.css')
				]
};
{#	app/Resources/views/base.html.twig	#}
+{%	block	stylesheets	%}
+				<link	rel="stylesheet"	href="{{	asset('builds/app.css')	}}">
+{%	endblock	%}
Extract	css	into	a	separated	file
10 . 3
Split	vendors	with	CommonChunksPlugin
module.exports	=	{
				entry:	{
								vendor:	[
												'jquery',
												'bootstrap-sass'
								]
				},
				output:	{	filename:	'[name].js'	},
				plugins:	[
								new	webpack.optimize.CommonsChunkPlugin({
												name:	'vendor'
								})
				]
};
{#	app/Resources/views/base.html.twig	#}
{%	block	javascripts	%}
+				<script	src="{{	asset('builds/vendor.js')	}}"></script>
					<script	src="{{	asset('builds/app.js')	}}"></script>
{%	endblock	%}
10 . 4
Minify	with	UglifyJs
Supported	by
Webpack	out	of
the	box	!
module.exports	=	{
				plugins:	[
+								new	webpack.optimize.UglifyJsPlugin({
+												beautify:	false,
+												compress:	{
+																screw_ie8:	true,
+																warnings:	false
+												},
+												mangle:	{
+																screw_ie8:	true,
+																keep_fnames:	true
+												},
+												comments:	false
+								})
				]
};
10 . 5
Minify	our	styles
{
				test:	/.scss$/,
				use:	ExtractTextPlugin.extract({
								fallback:	'style-loader',
								use:	[
												{
																loader:	'css-loader',
																options:	{	//	CSS	Nano	configuration
																				minimize:	{
																								discardComments:	{
																												removeAll:	true
																								},
																								core:	true,
																								minifyFontValues:	true
																				}
																}
												},
												'sass-loader'
								]
				})
}
10 . 6
Long	term	caching
10 . 7
const	WebpackManifestPlugin	=	require('webpack-manifest-plugin');
module.exports	=	{
				output:	{	filename:	'[name].[chunkhash].js'	},
				plugins:	[
								new	WebpackManifestPlugin({
												fileName:	'manifest.json'
								})
				]
};
$	npm	install	--save-dev	webpack-manifest-plugin
Install	Webpack	Manifest	plugin
10 . 8
https://github.com/symfony/symfony/pull/22046
Symfony	3.3
10 . 9
//	app/config/config_prod.yml
framework:
				assets:
								json_manifest_path:	'%kernel.root_dir%/../web/builds/manifest.json'
10 . 10
Tips
11 . 1
Tree	shaking
only	include	code	in	your
bundle	that	is	being	used
https://blog.engineyard.com/2016/tree-shaking
11 . 2
Env	vars
EnvironmentPlugin	:	reference	env	vars
through	process.env
DefinePlugin	:	global	constants
11 . 3
OptimizeJs	Plugin
optimize	a	JavaScript	file	for	faster
initial	execution	and	parsing
https://github.com/vigneshshanmugam/optimize-js-plugin
11 . 4
DedupePlugin
Deduplicate	common	files
https://medium.com/@rajaraodv/two-quick-ways-to-
reduce-react-apps-size-in-production-82226605771a
11 . 5
Thank	you	!
https://joind.in/talk/94c36
https://github.com/alOneh/sf-live-2017-symfony-webpack
12
Questions	?
13

More Related Content

What's hot

Building Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJSBuilding Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJS
Antonio Peric-Mazar
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
Bo-Yi Wu
 
API Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework ResurrectionAPI Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework Resurrection
Les-Tilleuls.coop
 
Introduction to laravel framework
Introduction to laravel frameworkIntroduction to laravel framework
Introduction to laravel framework
Ahmad Fatoni
 
RESTful API development in Laravel 4 - Christopher Pecoraro
RESTful API development in Laravel 4 - Christopher PecoraroRESTful API development in Laravel 4 - Christopher Pecoraro
RESTful API development in Laravel 4 - Christopher Pecoraro
Christopher Pecoraro
 
Introduction to Play Framework
Introduction to Play FrameworkIntroduction to Play Framework
Introduction to Play Framework
Warren Zhou
 
How to dockerize rails application compose and rails tutorial
How to dockerize rails application compose and rails tutorialHow to dockerize rails application compose and rails tutorial
How to dockerize rails application compose and rails tutorial
Katy Slemon
 
Creating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform frameworkCreating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform framework
Les-Tilleuls.coop
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricks
Javier Eguiluz
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
Sudip Simkhada
 
Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)
Saeed Zarinfam
 
Web service with Laravel
Web service with LaravelWeb service with Laravel
Web service with Laravel
Abuzer Firdousi
 
Laravel introduction
Laravel introductionLaravel introduction
Laravel introduction
Simon Funk
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoLife in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
Tareque Hossain
 
Tomcat + other things
Tomcat + other thingsTomcat + other things
Tomcat + other things
Aravindharamanan S
 
Composable and streamable Play apps
Composable and streamable Play appsComposable and streamable Play apps
Composable and streamable Play apps
Yevgeniy Brikman
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
Sencha
 
Jsp servlets
Jsp servletsJsp servlets
Jsp servlets
Rajavel Dhandabani
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBob Paulin
 

What's hot (20)

Building Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJSBuilding Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJS
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC Framework
 
API Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework ResurrectionAPI Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework Resurrection
 
Introduction to laravel framework
Introduction to laravel frameworkIntroduction to laravel framework
Introduction to laravel framework
 
RESTful API development in Laravel 4 - Christopher Pecoraro
RESTful API development in Laravel 4 - Christopher PecoraroRESTful API development in Laravel 4 - Christopher Pecoraro
RESTful API development in Laravel 4 - Christopher Pecoraro
 
Javascript laravel's friend
Javascript laravel's friendJavascript laravel's friend
Javascript laravel's friend
 
Introduction to Play Framework
Introduction to Play FrameworkIntroduction to Play Framework
Introduction to Play Framework
 
How to dockerize rails application compose and rails tutorial
How to dockerize rails application compose and rails tutorialHow to dockerize rails application compose and rails tutorial
How to dockerize rails application compose and rails tutorial
 
Creating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform frameworkCreating hypermedia APIs in a few minutes using the API Platform framework
Creating hypermedia APIs in a few minutes using the API Platform framework
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricks
 
Laravel 5
Laravel 5Laravel 5
Laravel 5
 
Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)
 
Web service with Laravel
Web service with LaravelWeb service with Laravel
Web service with Laravel
 
Laravel introduction
Laravel introductionLaravel introduction
Laravel introduction
 
Life in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with djangoLife in a Queue - Using Message Queue with django
Life in a Queue - Using Message Queue with django
 
Tomcat + other things
Tomcat + other thingsTomcat + other things
Tomcat + other things
 
Composable and streamable Play apps
Composable and streamable Play appsComposable and streamable Play apps
Composable and streamable Play apps
 
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
SenchaCon 2016: A Look Ahead: Survey Next-Gen Modern Browser APIs - Shikhir S...
 
Jsp servlets
Jsp servletsJsp servlets
Jsp servlets
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache Sling
 

Viewers also liked

Introduction to CQRS and Event Sourcing
Introduction to CQRS and Event SourcingIntroduction to CQRS and Event Sourcing
Introduction to CQRS and Event Sourcing
Samuel ROZE
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
 
WiCyS Career Fair Handbook
WiCyS Career Fair HandbookWiCyS Career Fair Handbook
WiCyS Career Fair Handbook
ClearedJobs.Net
 
PHP 7 new engine
PHP 7 new enginePHP 7 new engine
PHP 7 new engine
julien pauli
 
Empathie ist kein Hashtag. Digitale Kommunikation und reale Gefühle
Empathie ist kein Hashtag. Digitale Kommunikation und reale GefühleEmpathie ist kein Hashtag. Digitale Kommunikation und reale Gefühle
Empathie ist kein Hashtag. Digitale Kommunikation und reale Gefühle
Alexandra Klöckner
 
Not fudging nudges: What Internet law can teach regulatory scholarship
Not fudging nudges: What Internet law can teach regulatory scholarshipNot fudging nudges: What Internet law can teach regulatory scholarship
Not fudging nudges: What Internet law can teach regulatory scholarship
Chris Marsden
 
Od codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacjiOd codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacji
Michał Bartyzel
 
How to apply for an ABS licence
How to apply for an ABS licenceHow to apply for an ABS licence
How to apply for an ABS licence
Jonathon Bray
 
Turn complex to epic - Zelda goals planning
Turn complex to epic - Zelda goals planningTurn complex to epic - Zelda goals planning
Turn complex to epic - Zelda goals planning
Alexandre Quach
 
Administração Cientifica | Questões Corrigidas
Administração Cientifica | Questões CorrigidasAdministração Cientifica | Questões Corrigidas
Administração Cientifica | Questões Corrigidas
Danilo Mota
 
Visualizations with Empathy
Visualizations with EmpathyVisualizations with Empathy
Visualizations with Empathy
Amanda Makulec
 
Prekat. La Psicologia del Bienestar
Prekat. La Psicologia del BienestarPrekat. La Psicologia del Bienestar
Prekat. La Psicologia del Bienestar
Dr.Jose A Santos. +4500 contactos
 
C4 Logistics Services
C4 Logistics ServicesC4 Logistics Services
C4 Logistics Services
Sebastien Barth
 
How to Enable Developers to Deliver Secure Code
How to Enable Developers to Deliver Secure CodeHow to Enable Developers to Deliver Secure Code
How to Enable Developers to Deliver Secure Code
Achim D. Brucker
 
Rock art and IFRAO color card
Rock art and IFRAO color cardRock art and IFRAO color card
Rock art and IFRAO color card
Victor Reijs
 
Les actualités de la Roumanie pour le Mois de Mars 2017 de Eastrategies
Les actualités de la Roumanie pour le Mois de Mars 2017 de EastrategiesLes actualités de la Roumanie pour le Mois de Mars 2017 de Eastrategies
Les actualités de la Roumanie pour le Mois de Mars 2017 de Eastrategies
Eastrategies - Bucarest, Roumanie
 
Opnieuw goed jaar voor firma Staf Coppens
Opnieuw goed jaar voor firma Staf CoppensOpnieuw goed jaar voor firma Staf Coppens
Opnieuw goed jaar voor firma Staf Coppens
Thierry Debels
 
40 propositions pour moderniser et simplifier le droit de l'environnement
40 propositions pour moderniser et simplifier le droit de l'environnement40 propositions pour moderniser et simplifier le droit de l'environnement
40 propositions pour moderniser et simplifier le droit de l'environnement
Adm Medef
 
Introduction to Scrum - Hebrew
Introduction to Scrum - HebrewIntroduction to Scrum - Hebrew
Introduction to Scrum - Hebrew
Dan-Eyal Gazit
 
ASLA Makerspaces in the school library
ASLA Makerspaces in the school libraryASLA Makerspaces in the school library
ASLA Makerspaces in the school library
Australian School Library Association
 

Viewers also liked (20)

Introduction to CQRS and Event Sourcing
Introduction to CQRS and Event SourcingIntroduction to CQRS and Event Sourcing
Introduction to CQRS and Event Sourcing
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 
WiCyS Career Fair Handbook
WiCyS Career Fair HandbookWiCyS Career Fair Handbook
WiCyS Career Fair Handbook
 
PHP 7 new engine
PHP 7 new enginePHP 7 new engine
PHP 7 new engine
 
Empathie ist kein Hashtag. Digitale Kommunikation und reale Gefühle
Empathie ist kein Hashtag. Digitale Kommunikation und reale GefühleEmpathie ist kein Hashtag. Digitale Kommunikation und reale Gefühle
Empathie ist kein Hashtag. Digitale Kommunikation und reale Gefühle
 
Not fudging nudges: What Internet law can teach regulatory scholarship
Not fudging nudges: What Internet law can teach regulatory scholarshipNot fudging nudges: What Internet law can teach regulatory scholarship
Not fudging nudges: What Internet law can teach regulatory scholarship
 
Od codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacjiOd codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacji
 
How to apply for an ABS licence
How to apply for an ABS licenceHow to apply for an ABS licence
How to apply for an ABS licence
 
Turn complex to epic - Zelda goals planning
Turn complex to epic - Zelda goals planningTurn complex to epic - Zelda goals planning
Turn complex to epic - Zelda goals planning
 
Administração Cientifica | Questões Corrigidas
Administração Cientifica | Questões CorrigidasAdministração Cientifica | Questões Corrigidas
Administração Cientifica | Questões Corrigidas
 
Visualizations with Empathy
Visualizations with EmpathyVisualizations with Empathy
Visualizations with Empathy
 
Prekat. La Psicologia del Bienestar
Prekat. La Psicologia del BienestarPrekat. La Psicologia del Bienestar
Prekat. La Psicologia del Bienestar
 
C4 Logistics Services
C4 Logistics ServicesC4 Logistics Services
C4 Logistics Services
 
How to Enable Developers to Deliver Secure Code
How to Enable Developers to Deliver Secure CodeHow to Enable Developers to Deliver Secure Code
How to Enable Developers to Deliver Secure Code
 
Rock art and IFRAO color card
Rock art and IFRAO color cardRock art and IFRAO color card
Rock art and IFRAO color card
 
Les actualités de la Roumanie pour le Mois de Mars 2017 de Eastrategies
Les actualités de la Roumanie pour le Mois de Mars 2017 de EastrategiesLes actualités de la Roumanie pour le Mois de Mars 2017 de Eastrategies
Les actualités de la Roumanie pour le Mois de Mars 2017 de Eastrategies
 
Opnieuw goed jaar voor firma Staf Coppens
Opnieuw goed jaar voor firma Staf CoppensOpnieuw goed jaar voor firma Staf Coppens
Opnieuw goed jaar voor firma Staf Coppens
 
40 propositions pour moderniser et simplifier le droit de l'environnement
40 propositions pour moderniser et simplifier le droit de l'environnement40 propositions pour moderniser et simplifier le droit de l'environnement
40 propositions pour moderniser et simplifier le droit de l'environnement
 
Introduction to Scrum - Hebrew
Introduction to Scrum - HebrewIntroduction to Scrum - Hebrew
Introduction to Scrum - Hebrew
 
ASLA Makerspaces in the school library
ASLA Makerspaces in the school libraryASLA Makerspaces in the school library
ASLA Makerspaces in the school library
 

Similar to Utiliser Webpack dans une application Symfony

"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai..."Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
Fwdays
 
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying ConfigurationIBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
Development Seed
 
jsf2-composite-components
jsf2-composite-componentsjsf2-composite-components
jsf2-composite-componentsEdward Burns
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
Jordi Anguela
 
Features everywhere
Features everywhere Features everywhere
Features everywhere
Mediacurrent
 
Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2
Mathew Beane
 
Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language Analysis
Nicole Gomez
 
Nike pop up habitat
Nike pop up   habitatNike pop up   habitat
Nike pop up habitat
Chef
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone Way
TsungWei Hu
 
Spring Ldap
Spring LdapSpring Ldap
Spring Ldap
Piergiorgio Lucidi
 
Plone -- Evolving Python CMS
Plone -- Evolving Python CMSPlone -- Evolving Python CMS
Plone -- Evolving Python CMS
TsungWei Hu
 
A-Z_Maven.pdf
A-Z_Maven.pdfA-Z_Maven.pdf
A-Z_Maven.pdf
Mithilesh Singh
 
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Symphony Software Foundation
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Tim Pettersen
 
Intro lift
Intro liftIntro lift
Intro lift
Knoldus Inc.
 
Example Of Import Java
Example Of Import JavaExample Of Import Java
Example Of Import Java
Melody Rios
 
Getting modular with OSGI
Getting modular with OSGIGetting modular with OSGI
Getting modular with OSGI
Andrii Krokhmalnyi
 
The virtual DOM and how react uses it internally
The virtual DOM and how react uses it internallyThe virtual DOM and how react uses it internally
The virtual DOM and how react uses it internally
Clóvis Neto
 

Similar to Utiliser Webpack dans une application Symfony (20)

"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai..."Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
"Micro-frontends: Scalable and Modular Frontend in Parimatch Tech", Kyrylo Ai...
 
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying ConfigurationIBM Drupal Users Group Discussion on Managing and Deploying Configuration
IBM Drupal Users Group Discussion on Managing and Deploying Configuration
 
jsf2-composite-components
jsf2-composite-componentsjsf2-composite-components
jsf2-composite-components
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
Features everywhere
Features everywhere Features everywhere
Features everywhere
 
Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2Madison PHP - Getting Started with Magento 2
Madison PHP - Getting Started with Magento 2
 
Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language Analysis
 
Nike pop up habitat
Nike pop up   habitatNike pop up   habitat
Nike pop up habitat
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone Way
 
Spring Ldap
Spring LdapSpring Ldap
Spring Ldap
 
Plone -- Evolving Python CMS
Plone -- Evolving Python CMSPlone -- Evolving Python CMS
Plone -- Evolving Python CMS
 
A-Z_Maven.pdf
A-Z_Maven.pdfA-Z_Maven.pdf
A-Z_Maven.pdf
 
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
Gabriele Columbro - Maurizio Pillitu - Get your Alfresco project from Zero to...
 
Uml2
Uml2Uml2
Uml2
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
 
Spring 2
Spring 2Spring 2
Spring 2
 
Intro lift
Intro liftIntro lift
Intro lift
 
Example Of Import Java
Example Of Import JavaExample Of Import Java
Example Of Import Java
 
Getting modular with OSGI
Getting modular with OSGIGetting modular with OSGI
Getting modular with OSGI
 
The virtual DOM and how react uses it internally
The virtual DOM and how react uses it internallyThe virtual DOM and how react uses it internally
The virtual DOM and how react uses it internally
 

Recently uploaded

CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
karthi keyan
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
Kamal Acharya
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
AhmedHussein950959
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
FluxPrime1
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
ShahidSultan24
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
Kamal Acharya
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
Divya Somashekar
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
Osamah Alsalih
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
Jayaprasanna4
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
ViniHema
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 

Recently uploaded (20)

CME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional ElectiveCME397 Surface Engineering- Professional Elective
CME397 Surface Engineering- Professional Elective
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
 
ASME IX(9) 2007 Full Version .pdf
ASME IX(9)  2007 Full Version       .pdfASME IX(9)  2007 Full Version       .pdf
ASME IX(9) 2007 Full Version .pdf
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
DESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docxDESIGN A COTTON SEED SEPARATION MACHINE.docx
DESIGN A COTTON SEED SEPARATION MACHINE.docx
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Student information management system project report ii.pdf
Student information management system project report ii.pdfStudent information management system project report ii.pdf
Student information management system project report ii.pdf
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
block diagram and signal flow graph representation
block diagram and signal flow graph representationblock diagram and signal flow graph representation
block diagram and signal flow graph representation
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
ethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.pptethical hacking in wireless-hacking1.ppt
ethical hacking in wireless-hacking1.ppt
 
power quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptxpower quality voltage fluctuation UNIT - I.pptx
power quality voltage fluctuation UNIT - I.pptx
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 

Utiliser Webpack dans une application Symfony