SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

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
 

Destacado (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 a 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 a 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
 

Último

Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfalene1
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Communityprachaibot
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosVictor Morales
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewsandhya757531
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSneha Padhiar
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdfsahilsajad201
 
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmComputer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmDeepika Walanjkar
 
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdfPaper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdfNainaShrivastava14
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating SystemRashmi Bhat
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptJohnWilliam111370
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating SystemRashmi Bhat
 
signals in triangulation .. ...Surveying
signals in triangulation .. ...Surveyingsignals in triangulation .. ...Surveying
signals in triangulation .. ...Surveyingsapna80328
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Sumanth A
 
Industrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal CompressorsIndustrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal CompressorsAlirezaBagherian3
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating SystemRashmi Bhat
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communicationpanditadesh123
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfDrew Moseley
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionMebane Rash
 

Último (20)

Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
 
Prach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism CommunityPrach: A Feature-Rich Platform Empowering the Autism Community
Prach: A Feature-Rich Platform Empowering the Autism Community
 
KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
Artificial Intelligence in Power System overview
Artificial Intelligence in Power System overviewArtificial Intelligence in Power System overview
Artificial Intelligence in Power System overview
 
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATIONSOFTWARE ESTIMATION COCOMO AND FP CALCULATION
SOFTWARE ESTIMATION COCOMO AND FP CALCULATION
 
Robotics Group 10 (Control Schemes) cse.pdf
Robotics Group 10  (Control Schemes) cse.pdfRobotics Group 10  (Control Schemes) cse.pdf
Robotics Group 10 (Control Schemes) cse.pdf
 
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithmComputer Graphics Introduction, Open GL, Line and Circle drawing algorithm
Computer Graphics Introduction, Open GL, Line and Circle drawing algorithm
 
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdfPaper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
Paper Tube : Shigeru Ban projects and Case Study of Cardboard Cathedral .pdf
 
Virtual memory management in Operating System
Virtual memory management in Operating SystemVirtual memory management in Operating System
Virtual memory management in Operating System
 
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.pptROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
ROBOETHICS-CCS345 ETHICS AND ARTIFICIAL INTELLIGENCE.ppt
 
Main Memory Management in Operating System
Main Memory Management in Operating SystemMain Memory Management in Operating System
Main Memory Management in Operating System
 
signals in triangulation .. ...Surveying
signals in triangulation .. ...Surveyingsignals in triangulation .. ...Surveying
signals in triangulation .. ...Surveying
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
Robotics-Asimov's Laws, Mechanical Subsystems, Robot Kinematics, Robot Dynami...
 
Industrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal CompressorsIndustrial Applications of Centrifugal Compressors
Industrial Applications of Centrifugal Compressors
 
Input Output Management in Operating System
Input Output Management in Operating SystemInput Output Management in Operating System
Input Output Management in Operating System
 
multiple access in wireless communication
multiple access in wireless communicationmultiple access in wireless communication
multiple access in wireless communication
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
Immutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdfImmutable Image-Based Operating Systems - EW2024.pdf
Immutable Image-Based Operating Systems - EW2024.pdf
 
US Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of ActionUS Department of Education FAFSA Week of Action
US Department of Education FAFSA Week of Action
 

Integrate Webpack in a Symfony app