Build the mental model
Code a developer writes is rarely the exact code that reaches a browser. A build process sits between the two: automated steps that transform source files into production assets ready to deploy, often triggered by a command like npm run build.
- Compiling newer JS/TS syntax into a form older browsers understand
- Bundling many small files into fewer, larger ones
- Minifying code — stripping whitespace, comments, and long names to shrink size
Not every project has a build step — a simple hand-written static site can deploy exactly as written. But most modern frontend frameworks, and many backend projects, rely on one.
| Build Type | Characteristics |
|---|---|
| Development Build | Rebuilds instantly, unminified code, full stack traces for easy debugging. |
| Production Build | Takes longer to generate, aggressively minified and optimized, hides internal error detail. |
SOURCE TO PRODUCTION
--------------------
Source Code --> Build Step --> Production Assets --> Deploy
(readable, (compile, (minified, bundled,
many files) bundle, few files)
minify)
DEV BUILD: fast rebuilds, unminified, verbose errors
PROD BUILD: optimized, minified, small bundle sizeConnect it to a real scenario
Most JS/TS projects use two everyday commands: a dev command that rebuilds instantly as you edit, and a build command that produces the optimized production output, usually written into a folder your platform then serves.
Deployment platforms usually run this build command automatically on every push, rather than expecting you to run it and upload the result yourself.
Run the build locally once
Some bugs only appear in the production build and never show up in development.
Watch the output size
A sudden jump usually means a large dependency was added without realizing it.
Try the working example
function simpleMinify(source) {
return source
.replace(/\/\/.*$/gm, "")
.replace(/\s+/g, " ")
.trim();
}
const devSource = `
// Add two numbers together
function add(a, b) {
// return the sum
return a + b;
}
`;
const prodSource = simpleMinify(devSource);
console.log("Dev build size:", devSource.length, "chars");
console.log("Prod build size:", prodSource.length, "chars");
console.log("Prod output:", prodSource);Dev build size: 88 chars
Prod build size: 36 chars
Prod output: function add(a, b) { return a + b; }5-minute try-it
Take a small JS/CSS snippet of your own and run it through the minify function from this lesson's code example. Compare the character count before and after, then note two things minification removes that would matter if left in production.
One important caution
Deploying a development build to production by mistake, shipping far more bytes and exposing debug information.
Never running the build command locally, so a production-only bug is discovered only after real users hit it.
Minification — MDN Web Docs Glossary — Cloud & Deployment