Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JavaScriptures 5 - Babel & Webpack
Search
Artsy Open Source
April 13, 2018
Programming
0
450
JavaScriptures 5 - Babel & Webpack
https://github.com/artsy/javascriptures/tree/master/6_babel-webpack
Artsy Open Source
April 13, 2018
Tweet
Share
More Decks by Artsy Open Source
See All by Artsy Open Source
Adding React Native to an Existing App - Artsy x React Native 2018
artsyopensource
0
490
The Artsy Omakase - Artsy x React Native 2018
artsyopensource
1
870
Learning How to Learn - Artsy x React Native
artsyopensource
0
450
JavaScriptures 4.2 - Local State
artsyopensource
0
420
JavaScriptures 3 - Styled Components
artsyopensource
1
370
JavaScriptures 4.1 - Relay
artsyopensource
0
240
JavaScriptures 2 - TypeScript
artsyopensource
0
340
JavaScriptures 1 - React
artsyopensource
0
360
Other Decks in Programming
See All in Programming
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
170
役立つログに取り組もう
irof
28
9.6k
RubyLSPのマルチバイト文字対応
notfounds
0
120
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
350
イベント駆動で成長して委員会
happymana
1
320
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
1.3k
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
230
Remix on Hono on Cloudflare Workers
yusukebe
1
280
EventSourcingの理想と現実
wenas
6
2.3k
Creating a Free Video Ad Network on the Edge
mizoguchicoji
0
120
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
910
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1366
200k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Thoughts on Productivity
jonyablonski
67
4.3k
Practical Orchestrator
shlominoach
186
10k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
89
Become a Pro
speakerdeck
PRO
25
5k
Documentation Writing (for coders)
carmenintech
65
4.4k
Building Adaptive Systems
keathley
38
2.3k
Optimizing for Happiness
mojombo
376
70k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Transcript
Babel/Webpack Be fruitful, and bundle JavaScriptures V Chris
None
But first, what is JavaScript?
None
None
Then Google Maps happened
None
JavaScript quickly went from being a “toy language” to something
that was understood to be capable of real power
But there were problems...
None
None
None
None
None
NodeJS opened up the world of JavaScript to a new
community
(But the language had problems)
None
However, server-side JavaScript started to be used in all sorts
of creative ways
It started to rewrite itself
None
None
CoffeeScript was the spark. It showed the world that if
you didn’t like the language you could change it, and you didn’t need the browser vendors to do so
None
None
Babel has support for the latest version of JavaScript through
syntax transformers. These plugins allow you to use new syntax without waiting for browser support
Before browser vendors implemented support for modern JavaScript this was
essential
Babel unlocked JavaScript’s potential as a language that can be
enjoyable to use
It also created a platform for real-time, open-source language development
and exploration
None
Language proposals are submitted by TC39, and prototyped with Babel
These proposals are then moved in stages through the approval
process
None
Once a proposal has reached Stage IV it is considered
stable and will be incorporated into the language
How does this apply to Artsy?
None
Our JavaScript projects incorporate many language features, some of which
are not a part of the official JavaScript spec
None
None
“JavaScript that Scales” (it’s true)
None
These language features don’t run natively in the browser
They need to be transpiled into something that the browser
(or the server) can understand
None
With JavaScript’s low and high-level language features, anything is possible
None
4. You are expected to expect the unexpected every minute,
every hour of every day and of every night. - John C. Lilly
And things move fast....
None
Things that were previously impossible to imagine have become possible,
as well as common
WebAssembly (abbreviated Wasm) is a binary instruction format for a
stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.
JavaScript frameworks can make use of WebAssembly to confer massive
performance advantages and new features while still making functionality easily available to web developers.
But how does one manage this outward-spiraling complexity?
None
None
Webpack is a Module Bundler that runs during development
It builds a dependency graph of your application and combines
those assets into one or more bundles to be consumed by a target
None
Simply put…
None
None
It provides a common set of tools for managing application
complexity
None
Because of its robust dependency graph architecture, powerful developer tooling
can be built on top of it
None
And the overall developer experience highly optimized
None
However, Webpack configuration can be complex
None
It is designed for planet scale
But it can also be simple
webpack --mode development --output dist/bundle.js --watch
None
Webpack 4 can run without configuration via the “development” --mode
flag
What does a basic Webpack config look like?
None
None
None
None
What about a server?
None
None
None
Thanks!
None