NPM pangea-node-sdk在TypeScript NestJS项目中无法运行求助
解决Pangea Node SDK编译时的ERR_REQUIRE_ESM错误
这个问题本质是pangea-node-sdk是纯ESM模块,但你的TypeScript编译输出为CommonJS格式,导致Node用require()加载ESM模块时触发错误。以下是几个可行的解决方向:
调整TypeScript配置与项目模块类型
- 在项目根目录的
package.json中添加"type": "module",明确项目使用ESM模块规范。 - 修改
tsconfig.json的关键配置,确保编译输出为ESM:{ "compilerOptions": { "target": "ES2020", // 至少ES2020以支持ESM特性 "module": "NodeNext", // 匹配Node.js的ESM/CommonJS混合解析规则 "moduleResolution": "NodeNext", "esModuleInterop": true, "outDir": "./dist", "strict": true }, "include": ["src/**/*"] } - 编译后直接用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
相关产品推荐
相关产品推荐

