refactor(cursor-hook): 统一使用动态import替代require以兼容ESM/CJS模块

- 移除对require和import.meta的依赖,改用动态import方式加载Node.js内置模块
- 添加对ESM和CJS模块系统的兼容性支持
- 使用url.pathToFileURL将文件路径转换为URL格式进行模块导入
- 增强错误处理机制,确保模块加载失败时不会影响应用启动
```
This commit is contained in:
煎饼果子卷鲨鱼辣椒
2026-01-14 19:16:41 +08:00
parent 33e611ba9a
commit 3e0faf8001
3 changed files with 48 additions and 33 deletions

View File

@@ -1320,17 +1320,22 @@ if(globalThis.__cursor_hook_loaded__)return;
globalThis.__cursor_hook_loaded__=true;
try{
var __require__=typeof require==="function"?require:null;
if(!__require__){
var __m__=await import("module");
__require__=__m__.createRequire(import.meta.url);
}
var fs=__require__("fs");
var path=__require__("path");
var os=__require__("os");
var hookPath=path.join(os.homedir(), ".cursor_hook.js");
if(fs.existsSync(hookPath)){
__require__(hookPath);
// 兼容 ESM/CJS避免使用 import.meta仅 ESM 支持),统一用动态 import 加载 Hook
var fsMod=await import("fs");
var pathMod=await import("path");
var osMod=await import("os");
var urlMod=await import("url");
var fs=fsMod&&(fsMod.default||fsMod);
var path=pathMod&&(pathMod.default||pathMod);
var os=osMod&&(osMod.default||osMod);
var url=urlMod&&(urlMod.default||urlMod);
if(fs&&path&&os&&url&&typeof url.pathToFileURL==="function"){
var hookPath=path.join(os.homedir(), ".cursor_hook.js");
if(typeof fs.existsSync==="function"&&fs.existsSync(hookPath)){
await import(url.pathToFileURL(hookPath).href);
}
}
}catch(e){
// 失败静默,避免影响启动

View File

@@ -2047,17 +2047,22 @@ if(globalThis.__cursor_hook_loaded__)return;
globalThis.__cursor_hook_loaded__=true;
try{
var __require__=typeof require==="function"?require:null;
if(!__require__){
var __m__=await import("module");
__require__=__m__.createRequire(import.meta.url);
}
var fs=__require__("fs");
var path=__require__("path");
var os=__require__("os");
var hookPath=path.join(os.homedir(), ".cursor_hook.js");
if(fs.existsSync(hookPath)){
__require__(hookPath);
// 兼容 ESM/CJS避免使用 import.meta仅 ESM 支持),统一用动态 import 加载 Hook
var fsMod=await import("fs");
var pathMod=await import("path");
var osMod=await import("os");
var urlMod=await import("url");
var fs=fsMod&&(fsMod.default||fsMod);
var path=pathMod&&(pathMod.default||pathMod);
var os=osMod&&(osMod.default||osMod);
var url=urlMod&&(urlMod.default||urlMod);
if(fs&&path&&os&&url&&typeof url.pathToFileURL==="function"){
var hookPath=path.join(os.homedir(), ".cursor_hook.js");
if(typeof fs.existsSync==="function"&&fs.existsSync(hookPath)){
await import(url.pathToFileURL(hookPath).href);
}
}
}catch(e){
// 失败静默,避免影响启动

View File

@@ -701,17 +701,22 @@ if (globalThis.__cursor_hook_loaded__) return;
globalThis.__cursor_hook_loaded__ = true;
try {
var __require__ = typeof require === 'function' ? require : null;
if (!__require__) {
var __m__ = await import('module');
__require__ = __m__.createRequire(import.meta.url);
}
var fs = __require__('fs');
var path = __require__('path');
var os = __require__('os');
var hookPath = path.join(os.homedir(), '.cursor_hook.js');
if (fs.existsSync(hookPath)) {
__require__(hookPath);
// ESM/CJS使 import.meta ESM import Hook
var fsMod = await import('fs');
var pathMod = await import('path');
var osMod = await import('os');
var urlMod = await import('url');
var fs = fsMod && (fsMod.default || fsMod);
var path = pathMod && (pathMod.default || pathMod);
var os = osMod && (osMod.default || osMod);
var url = urlMod && (urlMod.default || urlMod);
if (fs && path && os && url && typeof url.pathToFileURL === 'function') {
var hookPath = path.join(os.homedir(), '.cursor_hook.js');
if (typeof fs.existsSync === 'function' && fs.existsSync(hookPath)) {
await import(url.pathToFileURL(hookPath).href);
}
}
} catch (e) {
//