77 lines
2.2 KiB
JavaScript
77 lines
2.2 KiB
JavaScript
import { defineConfig, normalizePath } from 'vite';
|
||
import { fileURLToPath } from 'url';
|
||
import { dirname, resolve } from 'path';
|
||
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
||
|
||
// 适配 ESM 的 __filename 和 __dirname
|
||
const __filename = fileURLToPath(import.meta.url);
|
||
const __dirname = dirname(__filename);
|
||
|
||
// 统一定义根目录,确保路径一致性
|
||
const rootDir = resolve(__dirname, '..'); // 根目录(与当前文件同级的上级目录)
|
||
const srcDir = resolve(rootDir, 'renderer/src'); // 源代码目录
|
||
const outDir = resolve(rootDir, 'openmcp-sdk'); // 构建输出目录
|
||
|
||
export default defineConfig({
|
||
define: {
|
||
'window': {
|
||
'nodejs': true,
|
||
'navigator': {
|
||
'userAgent': 2
|
||
},
|
||
'performance': {
|
||
'now': () => performance.now()
|
||
},
|
||
'Date': {
|
||
'now': () => Date.now()
|
||
}
|
||
},
|
||
},
|
||
plugins: [
|
||
viteStaticCopy({
|
||
targets: [
|
||
{
|
||
// 使用统一路径处理逻辑(POSIX 风格)
|
||
src: normalizePath(resolve(rootDir, 'resources/openmcp-sdk-release/*')),
|
||
dest: normalizePath(outDir) // 目标路径保持 POSIX 风格
|
||
}
|
||
]
|
||
})
|
||
],
|
||
build: {
|
||
target: 'node18', // Node.js 18 的目标环境
|
||
lib: {
|
||
// 使用统一路径变量(ESM 兼容格式)
|
||
entry: resolve(srcDir, 'components/main-panel/chat/core/task-loop.ts'),
|
||
name: 'TaskLoop', // 库名称
|
||
fileName: 'task-loop', // 输出文件名
|
||
formats: ['es'] // 改为 ESM 格式 [[7]]
|
||
},
|
||
outDir, // 使用统一输出目录
|
||
emptyOutDir: false, // 不清空输出目录
|
||
rollupOptions: {
|
||
external: [
|
||
'vue',
|
||
'chalk',
|
||
'element-plus',
|
||
],
|
||
output: {
|
||
globals: {
|
||
vue: 'vue',
|
||
chalk: 'chalk',
|
||
'element-plus': './tools.js' // 使用 POSIX 风格路径 [[10]]
|
||
},
|
||
esModule: true // 强制输出 ESM 格式
|
||
}
|
||
},
|
||
minify: false, // 不压缩代码
|
||
sourcemap: false // 不生成 source map
|
||
},
|
||
resolve: {
|
||
alias: {
|
||
// 使用统一路径变量(ESM 兼容别名)
|
||
'@': srcDir
|
||
},
|
||
extensions: ['.ts', '.js', '.mjs'] // 支持 .mjs 扩展名
|
||
}
|
||
}); |