fix: 使用 createRequire 加载阿里云 SDK,彻底解决 ESM/CJS 互操作问题
oven/bun 容器中 node 兼容模式对 CJS __esModule 的解析行为与 Bun 原生模式和 Node.js 均不同,导致 import default 和命名导出均失败。 改用 createRequire + require() 直接走 CJS 路径,在所有运行时下行为一致。
This commit is contained in:
parent
ae4e2c37ba
commit
48cbc200d1
@ -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({
|
||||
|
||||
Loading…
Reference in New Issue
Block a user