69 lines
1.4 KiB
TypeScript
69 lines
1.4 KiB
TypeScript
import path from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
import vue from '@vitejs/plugin-vue';
|
|
import { defineConfig } from 'vite';
|
|
import dts from 'vite-plugin-dts';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
export default defineConfig({
|
|
build: {
|
|
cssCodeSplit: true,
|
|
lib: {
|
|
entry: path.resolve(__dirname, 'src/index.ts'),
|
|
fileName: (format) => {
|
|
switch (format) {
|
|
case 'cjs': {
|
|
return 'index.cjs';
|
|
}
|
|
case 'es': {
|
|
return 'index.mjs';
|
|
}
|
|
case 'umd': {
|
|
return 'index.js';
|
|
}
|
|
default: {
|
|
return `index.${format}.js`;
|
|
}
|
|
}
|
|
},
|
|
formats: ['es', 'cjs', 'umd'],
|
|
name: 'RendererAdapter',
|
|
},
|
|
outDir: 'dist',
|
|
rollupOptions: {
|
|
external: ['vue'],
|
|
output: {
|
|
assetFileNames: (assetInfo) => {
|
|
if (assetInfo.name === 'style.css') return 'assets/[name][extname]';
|
|
return 'assets/[name]-[hash][extname]';
|
|
},
|
|
globals: {
|
|
vue: 'Vue',
|
|
},
|
|
},
|
|
},
|
|
sourcemap: true,
|
|
},
|
|
css: {
|
|
extract: false,
|
|
modules: {
|
|
localsConvention: 'camelCaseOnly',
|
|
scopeBehaviour: 'local',
|
|
},
|
|
},
|
|
plugins: [
|
|
vue({
|
|
css: {
|
|
injectCss: true,
|
|
},
|
|
}),
|
|
dts({
|
|
insertTypesEntry: true,
|
|
outDir: 'dist/types',
|
|
staticImport: true,
|
|
}),
|
|
],
|
|
});
|