Ethers库导入报错:未找到'ethers'.'provider'导出项求助
解决ethers库导入报错问题
报错根源
你碰到的export 'ethers'.'provider' (imported as 'ethers') was not found in 'ethers'错误,本质是ethers v6版本重构了导出结构,和v5的导入逻辑完全不一样,你试的几种写法要么是v5的旧写法,要么是混用了版本语法。
分版本的正确导入方法
如果你用的是ethers v6
- 单独导入
providers模块(推荐,按需加载):
import { providers } from "ethers"; // 示例:创建JSON-RPC Provider const provider = new providers.JsonRpcProvider("你的RPC节点地址");
- 导入完整的
ethers对象:
import { ethers } from "ethers"; // 示例1:获取默认公共Provider const defaultProvider = ethers.getDefaultProvider(); // 示例2:创建Alchemy Provider const alchemyProvider = new ethers.AlchemyProvider("mainnet", "你的Alchemy API密钥");
如果你想沿用v5的导入习惯
直接降级到ethers v5版本,然后用下面的写法:
import ethers from "ethers"; // 创建Provider示例 const provider = new ethers.providers.JsonRpcProvider("你的RPC节点地址");
确认当前ethers版本
执行下面的命令查看你装的版本:
npm list ethers
或者直接看项目根目录package.json里的ethers依赖版本号,区分是v5还是v6。
避坑提醒
- 别用
import ethers from ethers:v6里根本没有这种默认导出方式,会直接报错。 import {ethers} from ethers是v6的正确写法,但要注意v6里ethers.providers是存在的,部分特定Provider(比如AlchemyProvider)也可以直接通过ethers对象访问。
内容的提问来源于stack exchange,提问作者Jatin Patel
相关产品推荐
相关产品推荐

