From 48cbc200d10e0060a5720c3920f68cd773d3c189 Mon Sep 17 00:00:00 2001 From: Wang Zhuoxuan Date: Wed, 3 Jun 2026 12:03:08 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=BF=E7=94=A8=20createRequire=20?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E9=98=BF=E9=87=8C=E4=BA=91=20SDK=EF=BC=8C?= =?UTF-8?q?=E5=BD=BB=E5=BA=95=E8=A7=A3=E5=86=B3=20ESM/CJS=20=E4=BA=92?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit oven/bun 容器中 node 兼容模式对 CJS __esModule 的解析行为与 Bun 原生模式和 Node.js 均不同,导致 import default 和命名导出均失败。 改用 createRequire + require() 直接走 CJS 路径,在所有运行时下行为一致。 --- src/services/auth/aliyun-sms.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/services/auth/aliyun-sms.ts b/src/services/auth/aliyun-sms.ts index c5538ad..c965078 100644 --- a/src/services/auth/aliyun-sms.ts +++ b/src/services/auth/aliyun-sms.ts @@ -1,11 +1,15 @@ -import DypnsApi from '@alicloud/dypnsapi20170525'; -import { SendSmsVerifyCodeRequest, CheckSmsVerifyCodeRequest } from '@alicloud/dypnsapi20170525/dist/models/model.js'; +import { createRequire } from 'node:module'; import { $OpenApiUtil } from '@alicloud/openapi-core'; import { RuntimeOptions } from '@darabonba/typescript'; import { config } from '../../utils/config.js'; import { AppError, ValidationError } from '../../utils/errors.js'; -const DypnsClient = DypnsApi.default; +// 阿里云 SDK 是 Darabonba 生成的 CJS 模块,ESM import 在不同运行时下行为不一致 +// (Bun / Bun node 兼容模式 / Node.js 对 __esModule 和 exports.default 解析不同) +// 使用 createRequire 直接走 CJS require 路径,绕开所有 ESM/CJS 互操作问题 +const require = createRequire(import.meta.url); +const DypnsClient = require('@alicloud/dypnsapi20170525').default; +const { SendSmsVerifyCodeRequest, CheckSmsVerifyCodeRequest } = require('@alicloud/dypnsapi20170525/dist/models/model.js'); function createClient() { const openApiConfig = new $OpenApiUtil.Config({