Build & Packaging
07. Vite 6 Architecture & Library Packaging
Understand Vite 6 next-gen bundling internals, lightning-fast HMR, TypeScript declaration generation, and multi-format npm library packaging with exports.
vite-packaging.ts
// vite.config.ts & package.json exports architecture
import { defineConfig } from 'vite';
import { sveltekit } from '@sveltejs/kit/vite';
import tailwindcss from '@tailwindcss/vite';
export default defineConfig({
plugins: [tailwindcss(), sveltekit()],
build: {
target: 'es2026',
cssMinify: 'lightningcss'
}
});
/* package.json modern exports map for dual CJS/ESM & TypeScript declarations */
/*
{
"name": "@org/ui-library",
"type": "module",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js"
},
"./theme": "./dist/theme.css"
}
}
*/Vite 6 Architecture & Library Packaging
Modern frontend libraries use modern packaging standards including conditional exports, TypeScript declaration bundling, and Vite 6's optimized build pipeline.
- Vite 6 & Rolldown: Delivers lightning-fast Hot Module Replacement (HMR) and optimized multi-target build outputs.
svelte-package&unbuild: Compiles Svelte runes components, processes TypeScript definitions (.d.ts), and produces standard ESM artifacts.- Conditional
package.jsonexports: Enforces explicit public API boundaries, preventing consumers from importing internal unexported modules.
package.json Conditional Exports Resolver Subpath Exports
Target Export: .
TypeScript Types: ./dist/index.d.ts
ESM Bundle: ./dist/index.js
Main library bundle exporting runes components and utilities.