You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NPM pangea-node-sdk在TypeScript NestJS项目中无法运行求助

解决Pangea Node SDK编译时的ERR_REQUIRE_ESM错误

这个问题本质是pangea-node-sdk是纯ESM模块,但你的TypeScript编译输出为CommonJS格式,导致Node用require()加载ESM模块时触发错误。以下是几个可行的解决方向:

  • 调整TypeScript配置与项目模块类型

    1. 在项目根目录的package.json中添加"type": "module",明确项目使用ESM模块规范。
    2. 修改tsconfig.json的关键配置,确保编译输出为ESM:
      {
        "compilerOptions": {
          "target": "ES2020", // 至少ES2020以支持ESM特性
          "module": "NodeNext", // 匹配Node.js的ESM/CommonJS混合解析规则
          "moduleResolution": "NodeNext",
          "esModuleInterop": true,
          "outDir": "./dist",
          "strict": true
        },
        "include": ["src/**/*"]
      }
      
    3. 编译后直接用Node运行输出文件(Node 16+版本无需额外参数):node dist/your-entry-file.js
  • 改用动态导入(适合必须保留CommonJS的场景)
    如果项目依赖CommonJS无法切换到ESM,可以用TypeScript的动态import替代静态导入,避免编译后生成require()语句:

    async function setupAuditService() {
      const { PangeaConfig, AuditService, PangeaErrors } = await import('pangea-node-sdk');
      const config = new PangeaConfig({ domain: "your-pangea-domain" });
      const audit = new AuditService("your-audit-token", config);
      // 后续业务逻辑
    }
    
    setupAuditService().catch(err => console.error(err));
    
  • 排查混合模块冲突
    检查项目中是否存在CommonJS和ESM混合使用的情况(比如部分文件用require(),部分用import),这种混合场景容易触发加载错误,尽量统一模块规范。

  • 确认Node.js版本
    确保使用Node.js 16.14.0或更高版本,该版本对ESM的支持更稳定,能减少兼容性问题。

内容的提问来源于stack exchange,提问作者Talha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:17:40