【发布时间】:2022-12-11 05:43:09
【问题描述】:
我想将安全帽添加到使用 ES 模块的项目中。 Hardhat 抱怨我不能在 hardhat.config.js 文件中使用 require,所以我将其重命名为 import,但它仍然无法编译并出现以下错误:
不支持 ES 模块的 require()。
没有调用 require 的地方(我已将其替换为 import),但它另有说明。任何解决方案?
【问题讨论】:
我想将安全帽添加到使用 ES 模块的项目中。 Hardhat 抱怨我不能在 hardhat.config.js 文件中使用 require,所以我将其重命名为 import,但它仍然无法编译并出现以下错误:
不支持 ES 模块的 require()。
没有调用 require 的地方(我已将其替换为 import),但它另有说明。任何解决方案?
【问题讨论】:
我的 package.json 中有 "type": "module",
我正在使用 "hardhat": "^2.12.0-esm.1" 包。这是一个专门为支持 ESM 而编写的新软件包。
在我的测试中,如果我需要一些 HH 函数,我会这样做:
import pkg from 'hardhat'
const { ethers } = pkg
我的 hardhat.config.js 是重命名为 hardhat.config.cjs但内部没有变化,里面有很多要求,而且它们可以工作,即使我的 package.json 有类型:“module”。
在我的脚本中,我有这样的行:
async function main() {
const [deployer] = await ethers.getSigners()
但我一开始没有任何导入或要求。我想调用 hardhat run script/my_script.js 会产生导入魔法。
【讨论】: