求助:如何修复ethers包的ERR_PACKAGE_PATH_NOT_EXPORTED错误?
解决 Ethers.js 的 ERR_PACKAGE_PATH_NOT_EXPORTED 错误
这个错误是因为 Ethers.js 从 v6 版本开始调整了包的导出结构,不再允许直接引用内部的 ./lib/utils 路径,以下是几种可行的解决办法:
修改导入路径(推荐)
如果你自己的代码里直接写了import ... from 'ethers/lib/utils',改成从 Ethers.js 主包导入对应的工具函数。比如原本导入的formatEther、parseEther这类工具,现在可以直接从ethers包导入:// 旧写法(v5及以前) import { formatEther } from 'ethers/lib/utils' // 新写法(v6+) import { formatEther } from 'ethers'具体工具函数的导出位置可以参考 Ethers.js v6 的官方文档。
降级到 Ethers.js v5 版本
如果是项目依赖的第三方包还在使用旧的导入方式,暂时无法修改代码的话,可以降级 Ethers 到 v5 版本,执行以下命令:npm install ethers@5 # 或者用 yarn yarn add ethers@5临时修改包的导出配置(不推荐)
如果你只是临时需要解决问题,可以手动修改node_modules/ethers/package.json里的exports字段,添加对./lib/utils的导出配置:"exports": { // 原有配置... "./lib/utils": "./lib/utils.js" }注意这种方法只是临时方案,下次执行
npm install或yarn install时会被覆盖,不建议长期使用。
内容的提问来源于stack exchange,提问作者vvv1843894
相关产品推荐
相关产品推荐

