Files
cwd/docs/widget/vite.config.js
anghunk 1d855f8f7d build(widget): 为 Vite 配置添加 IIFE 格式并自定义输出文件名
调整 lib 输出配置,新增 'iife' 格式以支持更广泛的浏览器环境直接使用。
同时自定义各格式的输出文件名,使 ES 和 UMD 格式的文件名更清晰,并将 IIFE 格式作为默认的 'cwd.js' 文件。
2026-02-12 10:16:03 +08:00

65 lines
1.5 KiB
JavaScript

import { defineConfig } from 'vite';
import { resolve } from 'path';
import { readFileSync, copyFileSync } from 'fs';
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js';
const pkg = JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf-8'));
const banner = `/*! CWDComments widget v${pkg.version} */`;
function copyDtsPlugin() {
return {
name: 'copy-dts',
closeBundle() {
const src = resolve(__dirname, 'src/index.d.ts');
const dests = [
resolve(__dirname, 'dist/index.d.ts'),
resolve(__dirname, 'dist/cwd.es.d.ts'),
resolve(__dirname, 'dist/cwd.umd.d.ts')
];
dests.forEach(dest => {
try {
copyFileSync(src, dest);
console.log(`[copy-dts] Copied ${src} to ${dest}`);
} catch (e) {
console.error(`[copy-dts] Failed to copy .d.ts file to ${dest}: ${e}`);
}
});
}
}
}
export default defineConfig({
plugins: [cssInjectedByJsPlugin(), copyDtsPlugin()],
resolve: {
alias: {
'@': resolve(__dirname, 'src'),
},
},
build: {
lib: {
name: 'CWDComments',
entry: resolve(__dirname, 'src/index.js'),
formats: ['es', 'umd', 'iife'],
fileName: (format) => {
if (format === 'es') return 'cwd.es.js';
if (format === 'umd') return 'cwd.umd.js';
return 'cwd.js';
},
},
rollupOptions: {
output: {
exports: 'named',
banner,
},
},
sourcemap: false,
minify: 'terser',
terserOptions: {
compress: {
drop_console: false,
},
},
},
});