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

如何在Node.js中运行psn-api示例脚本?解决exports未定义错误

解决psn-api脚本运行报错的具体步骤

1. 修正依赖安装(若之前安装命令有误)

之前的安装命令包含冗余的i,重新执行正确的安装命令:

npm uninstall psn-api
npm install psn-api --save

2. 调整tsconfig.json核心配置

打开tsconfig.json,确保以下关键配置与ES模块规则对齐(其余无关配置可保留默认):

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "moduleResolution": "NodeNext",
    "outDir": "./dist",
    "esModuleInterop": true,
    "strict": true,
    "skipLibCheck": true
  },
  "include": ["index.ts"],
  "exclude": ["node_modules"]
}
  • module: "ESNext":强制TypeScript编译输出ES模块语法
  • moduleResolution: "NodeNext":适配Node.js的ES模块解析逻辑
  • outDir:指定编译产物输出到dist目录,避免源码与编译文件混淆

3. 修正示例代码的导入导出语法

确保index.ts使用ES模块规范的语法,替换CommonJS的require和exports:

  • 导入psn-api模块:
import { exchangeCodeForAccessToken, getTrophiesForTitle } from "psn-api";
  • 若示例代码存在导出逻辑,替换module.exports为ES模块的export:
// 替换 exports.run = ... 为
export async function run() {
  // 你的业务逻辑代码
}

4. 编译并运行脚本

执行编译命令:

npx tsc

编译完成后,运行dist目录下的产物文件:

node dist/index.js

错误原因说明

你遇到的ReferenceError: exports is not defined in ES module scope,是因为package.json设置"type":"module"后,Node.js会将所有.js文件识别为ES模块,但TypeScript编译产物仍使用CommonJS的exports语法,两者规则冲突导致报错。上述配置通过强制TypeScript输出ES模块语法,实现与Node.js模块规则的完全对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:45:56