64 lines
1.8 KiB
JavaScript
64 lines
1.8 KiB
JavaScript
// @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'),
|
|
},
|
|
},
|
|
}
|
|
})
|