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,
 | |
|     }),
 | |
|   ],
 | |
| });
 | 
