How does the way you write code impact your final bundle size? Learn two powerful techniques to make your JavaScript more tree-shakeable.
#1about 2 minutes
Understanding tree shaking to remove unused code
Tree shaking is a process used by bundlers to automatically remove unused code, also known as dead code, from your final application build.
#2about 4 minutes
How bundlers work and why they are necessary
Bundlers are essential for optimizing browser applications by combining code into a single file and enabling tree shaking, unlike native browser imports which load entire modules.
#3about 4 minutes
How static analysis enables code removal
Bundlers use static analysis at build time to create a dependency graph and identify unused code, but they cannot account for dynamic, runtime conditions.
#4about 3 minutes
How to test and measure tree shaking effectiveness
Use the `size-limit` NPM package to create test scenarios that measure bundle size impact and integrate these checks into CI to prevent regressions.
#5about 5 minutes
Using composition over options for better tree shaking
Refactor code from an options-based approach to a composition pattern to ensure optional features and their dependencies can be completely tree-shaken away.
#6about 4 minutes
Using static build flags for build-time optimization
Implement magic strings that are replaced with boolean values at build time, allowing the bundler to remove entire code blocks like debug logs for production builds.
#7about 4 minutes
Q&A on barrel files and build environment differences
The Q&A covers how barrel files can complicate tree shaking and the potential risks of having different development and production builds due to build-time flags.
Related jobs
Jobs that call for the skills explored in this talk.
How Microsoft worked around a Git limitation to shrink a repository by 94%Imagine that you are responsible for a Git repository with 1000 users, and 20 million lines of code. You struggle to keep up with constant pull requests but the biggest problem is that the Git file size of the repository is mushrooming to over 170GB ...
Daniel Cranney
Exploring TypeScript: Benefits for Large-Scale JavaScript ProjectsJavaScript is the backbone of web development, powering everything from small websites to large-scale enterprise applications. However, as projects grow in complexity, maintaining JavaScript code can become increasingly difficult. This is where TypeS...
Chris Heilmann
Dev Digest 136 - No JS(on) of mineNews and ArticlesDouglas Crockford is our featured video, so let's talk about evolving JavaScript and all things JSON. Judicious JSON explains all the weird things in it, you can learn why it can be incredibly slow, people wonder what even is a JSON ...
Benjamin Ruschin
What Developers Really Need to Create Great Code DemosEvery developer on earth has, at some point, had another developer to thank for a breakthrough, a success, an aha moment they wouldn’t have had without coming across that blog post, that open-source contribution, that reply on socials or that humble ...
From learning to earning
Jobs that call for the skills explored in this talk.