bingocode 1.1.56 → 1.1.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/manager/CliMenuManager.tsx +23 -14
package/package.json
CHANGED
|
@@ -289,30 +289,39 @@ export const CliMenuManager: React.FC = () => {
|
|
|
289
289
|
// 动态定位 server 入口,兼容开发环境 (.ts) 和打包环境 (.js)
|
|
290
290
|
let entry = "";
|
|
291
291
|
try {
|
|
292
|
-
//
|
|
293
|
-
const
|
|
292
|
+
// 方案 1: 基于 import.meta.url 动态计算 (最通用)
|
|
293
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
294
|
+
const __dirname = path.dirname(__filename);
|
|
295
|
+
|
|
296
|
+
// 方案 2: 尝试包内的几种标准结构
|
|
297
|
+
const pkgRoot = path.resolve(__dirname, '../../'); // 从 src/manager 向上两级到根目录
|
|
294
298
|
const possiblePaths = [
|
|
295
|
-
path.
|
|
296
|
-
path.
|
|
297
|
-
path.
|
|
298
|
-
path.join(
|
|
299
|
+
path.join(__dirname, '../server/index.ts'), // 结构 1: src/manager -> src/server
|
|
300
|
+
path.join(__dirname, '../server/index.js'),
|
|
301
|
+
path.join(pkgRoot, 'src/server/index.ts'), // 结构 2: root -> src/server
|
|
302
|
+
path.join(pkgRoot, 'dist/server.js'),
|
|
303
|
+
path.resolve(process.argv[1], '../../src/server/index.ts'), // 结构 3: 从 bin 文件位置反推
|
|
299
304
|
];
|
|
300
305
|
|
|
301
306
|
for (const p of possiblePaths) {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
if (fs.existsSync(formattedPath)) {
|
|
305
|
-
entry = formattedPath;
|
|
307
|
+
if (fs.existsSync(p)) {
|
|
308
|
+
entry = p;
|
|
306
309
|
break;
|
|
307
310
|
}
|
|
308
311
|
}
|
|
309
312
|
} catch (e) {
|
|
310
|
-
//
|
|
311
|
-
|
|
313
|
+
// Fallback: 如果上面的动态探测挂了,尝试最后的大招:
|
|
314
|
+
// 既然 package.json 里的 name 是 bingocode,我们可以尝试寻找它
|
|
315
|
+
try {
|
|
316
|
+
// 这里不做具体的 require.resolve 以免在非 node 环境报错,但可以手动拼
|
|
317
|
+
entry = path.join(process.cwd(), 'node_modules/bingocode/src/server/index.ts');
|
|
318
|
+
} catch {}
|
|
312
319
|
}
|
|
313
320
|
|
|
314
|
-
if (!entry) {
|
|
315
|
-
|
|
321
|
+
if (!entry || !fs.existsSync(entry)) {
|
|
322
|
+
// 最后的诊断信息:显示一下我找过哪里,方便用户反馈
|
|
323
|
+
const lastTry = path.resolve(import.meta.dir || "", '../server/index.ts');
|
|
324
|
+
setBootErr(`无法定位服务器入口文件。请确保 src/server/index.ts 存在。\n尝试路径: ${entry || '未找到'}`);
|
|
316
325
|
return;
|
|
317
326
|
}
|
|
318
327
|
|