【问题标题】:How to use hardhat with ES module?ES模块如何使用安全帽?
【发布时间】:2022-12-11 05:43:09
【问题描述】:

我想将安全帽添加到使用 ES 模块的项目中。 Hardhat 抱怨我不能在 hardhat.config.js 文件中使用 require,所以我将其重命名为 import,但它仍然无法编译并出现以下错误:

不支持 ES 模块的 require()。

没有调用 require 的地方(我已将其替换为 import),但它另有说明。任何解决方案?

【问题讨论】:

    标签: node.js ethers.js hardhat


    【解决方案1】:

    我的 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 会产生导入魔法。

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 1970-01-01
      • 2022-08-09
      • 2011-08-14
      • 1970-01-01
      • 2022-06-15
      • 2021-07-13
      • 2022-10-09
      • 2021-10-07
      相关资源
      最近更新 更多