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 (for vp build) + unplugin-vue/rolldown (for vp pack)
  • pack.entry defaults to {}, set AUTO_ENTRIES=1 to auto-detect from package.json exports
  • dts: { vue: true }: DTS generation including Vue SFC types
  • vue is always external
  • VITE_GIT_VERSION injected via define
  • oxlint, oxfmt, vitest with happy-domtests/setup.ts is picked up automatically as setupFiles if 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'
FragmentDescription
vite/sharedlintoxlint configuration
vite/sharedfmtoxfmt configuration
vite/sharedtestvitest (happy-dom, globals)
vite/vuepackunplugin-vue, dts, entry
vite/vuepluginsVue plugins section

Shared tsconfigs

Extend in tsconfig.json:

{
  "extends": "@munsonlabs/shipkit/tsconfig/lib"
}
ConfigUse case
tsconfig/baseStrict ESM - nodenext, noEmit
tsconfig/libLibraries - bundler resolution, DOM, JSX
tsconfig/appApps - same as lib + isolatedModules
Copyright © 2026