Ship Kit
Vite Configs
Shared vite configurations for Vue packages and plain TypeScript libraries.
@munsonlabs/shipkit/vite/vue.config
For all Vue packages, libraries (vp pack) and apps (vp build). Both pipelines coexist in one config.
Configuration
@vitejs/plugin-vue(forvp build) +unplugin-vue/rolldown(forvp pack)pack.entrydefaults to{}, setAUTO_ENTRIES=1to auto-detect frompackage.jsonexportsdts: { vue: true }: DTS generation including Vue SFC typesvueis always externalVITE_GIT_VERSIONinjected viadefine- oxlint, oxfmt, vitest with
happy-dom—tests/setup.tsis picked up automatically assetupFilesif it exists
Usage
import { mergeConfig } from 'vite-plus'
import type { UserConfig } from 'vite-plus'
import base from '@munsonlabs/shipkit/vite/vue.config'
import { resolve } from 'node:path'
export default mergeConfig(base, {
pack: {
entry: {
index: resolve(import.meta.dirname, 'src/index.ts'),
},
},
}) as UserConfig
Auto-entries
Set in build scripts to auto-detect from package.json exports:
"build": "AUTO_ENTRIES=1 vp pack"
@munsonlabs/shipkit/vite/base.config
For plain TypeScript libraries (no Vue). Same AUTO_ENTRIES pattern.
import { mergeConfig } from 'vite-plus'
import base from '@munsonlabs/shipkit/vite/base.config'
export default mergeConfig(base, {
pack: {
entry: { index: './src/index.ts' },
},
}) as UserConfig
Config fragments
Cherry-pick individual sections:
import { lint, fmt, test } from '@munsonlabs/shipkit/vite/shared'
import { pack, plugins } from '@munsonlabs/shipkit/vite/vue'
| Fragment | Description |
|---|---|
vite/shared → lint | oxlint configuration |
vite/shared → fmt | oxfmt configuration |
vite/shared → test | vitest (happy-dom, globals) |
vite/vue → pack | unplugin-vue, dts, entry |
vite/vue → plugins | Vue plugins section |
Shared tsconfigs
Extend in tsconfig.json:
{
"extends": "@munsonlabs/shipkit/tsconfig/lib"
}
| Config | Use case |
|---|---|
tsconfig/base | Strict ESM - nodenext, noEmit |
tsconfig/lib | Libraries - bundler resolution, DOM, JSX |
tsconfig/app | Apps - same as lib + isolatedModules |