Skip to main content
Brave Programmer Logo

BraveProgrammer

BraveProgrammer

HomeProjectsBlogsCoursesLessonsAbout

Site footer

BraveProgrammer

Free coding courses, practical tutorials, and real projects from BraveProgrammer. Learn web development with React, Next.js, and TypeScript.

Navigation

  • Home
  • Projects
  • Blogs
  • Courses

Resources

  • About
  • Lessons

© 2026 BraveProgrammer. All rights reserved.

  1. Courses
  2. /
  3. TypeScript Mastery

Lesson 42 of 56 · Typescript

Bundlers – Webpack, Vite, and Rollup with TypeScript

Duration: 20 minutes

Webpack + ts-loader

npm i -D webpack webpack-cli ts-loader

webpack.config.js

module.exports = {
  entry: './src/index.ts',
  mode: 'development',
  module: { rules: [{ test: /\.ts$/, use: 'ts-loader', exclude: /node_modules/ }] },
  resolve: { extensions: ['.ts', '.js'] },
  output: { filename: 'bundle.js', path: __dirname + '/dist' },
};

Vite (fast dev server)

npm i -D vite

vite.config.ts

import { defineConfig } from 'vite';
export default defineConfig({
  esbuild: { loader: 'ts', target: 'es2022' },
});

package.json

"scripts": { "dev": "vite" }

Rollup (library bundling)

npm i -D rollup @rollup/plugin-typescript

rollup.config.js

import typescript from '@rollup/plugin-typescript';
export default {
  input: 'src/index.ts',
  output: [{ file: 'dist/bundle.cjs.js', format: 'cjs' }, { file: 'dist/bundle.esm.js', format: 'es' }],
  plugins: [typescript()],
};

Info

All three bundlers support tree‑shaking and code‑splitting when configured correctly.

Previous: Build Tools – `tsc` vs. Babel vs. SWCNext: Monorepos – Lerna, Yarn Workspaces, and Nx