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

使用TypeScript+ts-node导入ethers.js时无法访问providers问题咨询

问题解决:ES6导入ethers.js时出现TS2339错误

核心原因

不是ts-node的问题,主要是ethers.js版本差异或TypeScript配置未匹配ES模块规则导致的。

解决方案

1. 适配ethers.js v6+版本(推荐)

ethers.js从v6开始重构了模块结构,providers下的类已直接移到主ethers对象中,无需通过ethers.providers访问:

import { ethers } from "ethers";
const provider = new ethers.JsonRpcProvider(url);

2. 若使用ethers.js v5版本

v5的ES模块导入需要调整写法,同时确保TS配置正确:

  • 修改导入语句:
// 两种写法二选一
import ethers from "ethers";
// 或
import * as ethers from "ethers";
  • 调整tsconfig.json关键配置:
{
  "compilerOptions": {
    "module": "ESNext",
    "moduleResolution": "node16",
    "allowSyntheticDefaultImports": true
  }
}

3. 确保ts-node正确处理ES模块

如果上述配置后仍有问题,运行ts-node时添加--esm参数强制启用ES模块支持:

ts-node --esm your-script.ts

或在项目根目录的package.json中添加:

{
  "type": "module"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 07:22:04