Files
esengine/packages/editor-runtime/vite.config.ts
YHH 107439d70c Feature/runtime cdn and plugin loader (#240)
* feat(ui): 完善 UI 布局系统和编辑器可视化工具

* refactor: 移除 ModuleRegistry,统一使用 PluginManager 插件系统

* fix: 修复 CodeQL 警告并提升测试覆盖率

* refactor: 分离运行时入口点,解决 runtime bundle 包含 React 的问题

* fix(ci): 添加 editor-core 和 editor-runtime 到 CI 依赖构建步骤

* docs: 完善 ServiceContainer 文档,新增 Symbol.for 模式和 @InjectProperty 说明

* fix(ci): 修复 type-check 失败问题

* fix(ci): 修复类型检查失败问题

* fix(ci): 修复类型检查失败问题

* fix(ci): behavior-tree 构建添加 @tauri-apps 外部依赖

* fix(ci): behavior-tree 添加 @tauri-apps/plugin-fs 类型依赖

* fix(ci): platform-web 添加缺失的 behavior-tree 依赖

* fix(lint): 移除正则表达式中不必要的转义字符
2025-11-27 20:42:46 +08:00

59 lines
1.7 KiB
TypeScript

import { defineConfig } from 'vite';
import { resolve } from 'path';
import dts from 'vite-plugin-dts';
export default defineConfig({
plugins: [
dts({
include: ['src'],
outDir: 'dist',
rollupTypes: false,
tsconfigPath: './tsconfig.json'
})
],
define: {
'process.env.NODE_ENV': JSON.stringify('production')
},
esbuild: {
// 保留类名,用于跨包插件服务匹配
keepNames: true,
},
build: {
lib: {
entry: resolve(__dirname, 'src/index.ts'),
formats: ['es'],
fileName: () => 'editor-runtime.js'
},
rollupOptions: {
// 将 React 和核心 ECS 框架设为外部依赖
// 这确保整个应用使用同一个 ComponentRegistry 实例
external: [
'react',
'react-dom',
'react/jsx-runtime',
'@esengine/ecs-framework',
'@esengine/ecs-components',
'@esengine/tilemap',
'@esengine/ui',
'@esengine/behavior-tree',
'@esengine/platform-web',
'@esengine/ecs-engine-bindgen',
'@esengine/asset-system',
],
output: {
exports: 'named',
inlineDynamicImports: true,
// 映射外部依赖到全局变量
globals: {
'react': 'React',
'react-dom': 'ReactDOM',
'react/jsx-runtime': 'ReactJSXRuntime'
}
}
},
target: 'es2020',
minify: false,
sourcemap: true
}
});