// @ts-nocheck import { readFileSync } from 'node:fs' import { resolve } from 'node:path' import { defineConfig } from 'vite' import dts from 'vite-plugin-dts' /** * @type {import('./index.d.ts').GetUserConfig} */ export default (dirname, overwriteLib) => defineConfig(({ mode }) => { const pkg = JSON.parse(readFileSync(resolve(dirname, './package.json'), 'utf-8')) const isDev = mode === 'development' return { plugins: [ dts({ outDir: 'dist', compilerOptions: { declarationMap: isDev }, include: ['src/**/*.ts', 'src/**/*.vue', 'src/**/*.d.ts'], insertTypesEntry: true, skipDiagnostics: false, }), ], build: { lib: overwriteLib ? undefined : { entry: { lib: resolve(dirname, 'src/index.ts'), }, formats: ['es', 'cjs'], fileName: (format, entryName) => `${entryName}.${format === 'es' ? 'mjs' : 'cjs'}`, }, rollupOptions: { external: isDev ? id => { if (pkg.peerDependencies && id in pkg.peerDependencies) { return true } if (/^@(ant-design-vue)\//.test(id)) { return true } return false } : pkg.peerDependencies && Object.keys(pkg.peerDependencies), }, sourcemap: isDev ? 'inline' : undefined, minify: !isDev, emptyOutDir: !isDev, watch: process.argv.includes('--watch') ? { buildDelay: 300, } : null, }, resolve: { alias: { '@': resolve(dirname, './src'), }, }, } })