Beruflich Dokumente
Kultur Dokumente
Introduction
Joe Eames
@josepheames | www.joeeames.me
Course Overview
Introduction
Basic Builds
Advanced Builds
Tools
Specific Builds
Who Should Watch This Course?
https://github.com/joeeames/WebpackFundamentalsCourse
Why Do We Need a Build?
?
Multiple Web Requests
Browser Server
Code Size
function rockOut(guitar) {
if(guitar.canShred) {
guitar.shred();
} else {
guitar.play();
}
}
Minified
function
rockOut(guitar){if(guitar.canShred){guitar.shred();}else{g
uitar.play();}}
Really Minified
function rockOut(c){c.canShred?c.shred():c.play()}
File Order Dependencies
<head>
<script src=“members.js”></script>
<script src=“bands.js”></script>
</head>
Transpilation
function playSolo(drums, duration = 5) {
drums.startSolo();
setTimeout(function() {
drums.endSolo();
}, duration * 60000);
}
Linting
function tune(lead, bass, keyboard) {
lead.tune()
bass.tune()
}
Why Do We Need a Build?
Combining Files
Minifying Files
File1.js
File2.js
Browser Minification &
Concatenation File1.css
File2.css
Task Runners
File1.es6 File1.js
File.js MinFile.js
File2.es6 File2.js
Browser
File1.scss File1.css
File.css MinFile.css
File2.scss File2.css
Webpack
File1.es6 File1.js
File.js MinFile.js
File2.es6 File2.js
bundle.js Browser
File1.scss File1.css
MinFile.cs
File.css
s
File2.scss File2.css
Webpack Use NPM not Bower
Conventions Use a Module System
Module Systems
Backbone.j
jQuery.js Lodash.js
s
Members.j
s
Bands.js
Albums.js Concerts.js
Module Systems
Members.j
s
Bands.js
Concerts.js
Module Systems
Backbone.j
jQuery.js Lodash.js
s
Members.j
s
Bands.js
Albums.js Concerts.js
Concerts.js
var bands = require(‘./Bands’);
var Backbone = require(‘Backbone’);
var Lodash = require(‘Lodash’);
// code
Module Systems
Backbone.j
jQuery.js Lodash.js
s
Members.j
s
Bands.js
Bands.js
var $ = require(‘jQuery’);
var members = require(‘./Members’);
// code
Summary
Introduction
The Need for a Build
Alternate Solutions
Webpack
Module Systems