From bd23bfe17cbb9b2ce2cfd545ba10cc2b7f95656b Mon Sep 17 00:00:00 2001 From: li1553770945 <1553770945@qq.com> Date: Fri, 13 Jun 2025 21:22:49 +0800 Subject: [PATCH] fix --- package.json | 1 + webpack/vite.config.task-loop.mjs | 38 ++++++++++++++++++------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/package.json b/package.json index 69dd91e..363d33c 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "Other" ], "activationEvents": [], + "type":"module", "main": "./dist/extension.js", "icon": "icons/openmcp.png", "contributes": { diff --git a/webpack/vite.config.task-loop.mjs b/webpack/vite.config.task-loop.mjs index 1fadd88..dc999b0 100644 --- a/webpack/vite.config.task-loop.mjs +++ b/webpack/vite.config.task-loop.mjs @@ -1,11 +1,16 @@ import { defineConfig, normalizePath } from 'vite'; -import { resolve } from 'path'; +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'); +const rootDir = resolve(__dirname, '..'); // 根目录(与当前文件同级的上级目录) +const srcDir = resolve(rootDir, 'renderer/src'); // 源代码目录 +const outDir = resolve(rootDir, 'openmcp-sdk'); // 构建输出目录 export default defineConfig({ define: { @@ -26,24 +31,24 @@ export default defineConfig({ viteStaticCopy({ targets: [ { - // 使用统一路径处理逻辑 + // 使用统一路径处理逻辑(POSIX 风格) src: normalizePath(resolve(rootDir, 'resources/openmcp-sdk-release/*')), - dest: normalizePath(outDir) + dest: normalizePath(outDir) // 目标路径保持 POSIX 风格 } ] }) ], build: { - target: 'node18', + target: 'node18', // Node.js 18 的目标环境 lib: { - // 使用统一路径变量 + // 使用统一路径变量(ESM 兼容格式) entry: resolve(srcDir, 'components/main-panel/chat/core/task-loop.ts'), - name: 'TaskLoop', - fileName: 'task-loop', + name: 'TaskLoop', // 库名称 + fileName: 'task-loop', // 输出文件名 formats: ['es'] // 改为 ESM 格式 [[7]] }, outDir, // 使用统一输出目录 - emptyOutDir: false, + emptyOutDir: false, // 不清空输出目录 rollupOptions: { external: [ 'vue', @@ -56,16 +61,17 @@ export default defineConfig({ chalk: 'chalk', 'element-plus': './tools.js' // 使用 POSIX 风格路径 [[10]] }, - esModule: true + esModule: true // 强制输出 ESM 格式 } }, - minify: false, - sourcemap: false + minify: false, // 不压缩代码 + sourcemap: false // 不生成 source map }, resolve: { alias: { - // 使用统一路径变量 + // 使用统一路径变量(ESM 兼容别名) '@': srcDir - } + }, + extensions: ['.ts', '.js', '.mjs'] // 支持 .mjs 扩展名 } }); \ No newline at end of file