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

NodeJS项目中openai模块Configuration导入报错问题求助

问题解决:OpenAI模块导入报错SyntaxError: The requested module 'openai' does not provide an export named 'Configuration'

核心原因

问题源于两个关键点:

  • OpenAI包版本迭代:v4+版本彻底重构了API结构,移除了旧版的Configuration和OpenAIApi导出类,改用默认导出的OpenAI类
  • CoffeeScript编译与ES模块不兼容:CoffeeScript 2.7.0默认编译为CommonJS格式,而package.json中"type": "module"的设置强制Node.js以ES模块规则解析文件,二者冲突导致导入报错

解决方案

1. 适配OpenAI v4+的导入与调用逻辑

若你的openai包为v4及以上版本,替换原有代码:

// 旧写法(v3及更早版本)
import {Configuration, OpenAIApi} from 'openai';
const configuration = new Configuration({ apiKey: process.env.OPENAI_API_KEY });
const openai = new OpenAIApi(configuration);

// 新写法(v4+版本)
import OpenAI from 'openai';
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });

// 聊天补全接口调用示例(对应旧版的createCompletion)
const response = await openai.chat.completions.create({
  model: "gpt-3.5-turbo",
  messages: [{ role: "user", content: "Hello!" }]
});

2. 调整CoffeeScript编译配置

强制CoffeeScript生成ES模块格式的JS文件,编译时添加--output-type=es参数:

# 编译单个文件
coffee --output-type=es --compile your-file.coffee

# 批量编译目录
coffee --output-type=es --compile src/ --output dist/

若使用配置文件(如coffeescript.config.json),添加对应配置项:

{
  "outputType": "es"
}

3. 规范ES模块导入路径

ES模块要求导入自定义文件时必须带完整扩展名,修正导入路径:

// 错误写法
import MyClass from './my-class';

// 正确写法
import MyClass from './my-class.js';

验证步骤

  1. 执行npm list openai确认当前包版本
  2. 重新编译CoffeeScript文件,检查编译后的JS是否使用export而非module.exports
  3. 替换导入代码后运行项目,确认报错消失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:42:38