SlideShare a Scribd company logo
1 of 61
Download to read offline
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 AngularJSAntonio Peric-Mazar
 
CodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkCodeIgniter PHP MVC Framework
CodeIgniter PHP MVC FrameworkBo-Yi Wu
 
API Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework ResurrectionAPI Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework ResurrectionLes-Tilleuls.coop
 
Introduction to laravel framework
Introduction to laravel frameworkIntroduction to laravel framework
Introduction to laravel frameworkAhmad 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 PecoraroChristopher Pecoraro
 
Introduction to Play Framework
Introduction to Play FrameworkIntroduction to Play Framework
Introduction to Play FrameworkWarren 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 tutorialKaty 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 frameworkLes-Tilleuls.coop
 
Symfony tips and tricks
Symfony tips and tricksSymfony tips and tricks
Symfony tips and tricksJavier Eguiluz
 
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 LaravelAbuzer Firdousi
 
Laravel introduction
Laravel introductionLaravel introduction
Laravel introductionSimon 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 djangoTareque Hossain
 
Composable and streamable Play apps
Composable and streamable Play appsComposable and streamable Play apps
Composable and streamable Play appsYevgeniy 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
 
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 SourcingSamuel 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 NicheLeslie Samuel
 
WiCyS Career Fair Handbook
WiCyS Career Fair HandbookWiCyS Career Fair Handbook
WiCyS Career Fair HandbookClearedJobs.Net
 
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ühleAlexandra 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 scholarshipChris Marsden
 
Od codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacjiOd codziennej higieny do strategicznej refaktoryzacji
Od codziennej higieny do strategicznej refaktoryzacjiMichał 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 licenceJonathon 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 planningAlexandre Quach
 
Administração Cientifica | Questões Corrigidas
Administração Cientifica | Questões CorrigidasAdministração Cientifica | Questões Corrigidas
Administração Cientifica | Questões CorrigidasDanilo Mota
 
Visualizations with Empathy
Visualizations with EmpathyVisualizations with Empathy
Visualizations with EmpathyAmanda Makulec
 
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 CodeAchim D. Brucker
 
Rock art and IFRAO color card
Rock art and IFRAO color cardRock art and IFRAO color card
Rock art and IFRAO color cardVictor 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 EastrategiesEastrategies - 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 CoppensThierry 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'environnementAdm Medef
 
Introduction to Scrum - Hebrew
Introduction to Scrum - HebrewIntroduction to Scrum - Hebrew
Introduction to Scrum - HebrewDan-Eyal Gazit
 

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 Integrate Webpack in a Symfony app

"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 ConfigurationDevelopment 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-endJordi 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 2Mathew Beane
 
Nt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNt1310 Unit 3 Language Analysis
Nt1310 Unit 3 Language AnalysisNicole Gomez
 
Nike pop up habitat
Nike pop up   habitatNike pop up   habitat
Nike pop up habitatChef
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone WayTsungWei Hu
 
Plone -- Evolving Python CMS
Plone -- Evolving Python CMSPlone -- Evolving Python CMS
Plone -- Evolving Python CMSTsungWei Hu
 
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 EconomyTim Pettersen
 
Example Of Import Java
Example Of Import JavaExample Of Import Java
Example Of Import JavaMelody Rios
 
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 internallyClóvis Neto
 

Similar to Integrate Webpack in a Symfony app (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

Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxsiddharthjain2303
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsSachinPawar510423
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - GuideGOPINATHS437943
 
Steel Structures - Building technology.pptx
Steel Structures - Building technology.pptxSteel Structures - Building technology.pptx
Steel Structures - Building technology.pptxNikhil Raut
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptJasonTagapanGulla
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingBootNeck1
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvLewisJB
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...Amil Baba Dawood bangali
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxRomil Mishra
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 

Recently uploaded (20)

Energy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptxEnergy Awareness training ppt for manufacturing process.pptx
Energy Awareness training ppt for manufacturing process.pptx
 
Vishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documentsVishratwadi & Ghorpadi Bridge Tender documents
Vishratwadi & Ghorpadi Bridge Tender documents
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Transport layer issues and challenges - Guide
Transport layer issues and challenges - GuideTransport layer issues and challenges - Guide
Transport layer issues and challenges - Guide
 
Steel Structures - Building technology.pptx
Steel Structures - Building technology.pptxSteel Structures - Building technology.pptx
Steel Structures - Building technology.pptx
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.ppt
 
System Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event SchedulingSystem Simulation and Modelling with types and Event Scheduling
System Simulation and Modelling with types and Event Scheduling
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Work Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvvWork Experience-Dalton Park.pptxfvvvvvvv
Work Experience-Dalton Park.pptxfvvvvvvv
 
Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uae Dubai Abu Dhabi ...
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
Mine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptxMine Environment II Lab_MI10448MI__________.pptx
Mine Environment II Lab_MI10448MI__________.pptx
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 

Integrate Webpack in a Symfony app