0

当我在 Hardhat 中运行测试时,我得到了这个问题中提到的错误。

在 Hardhat 文档中,他们建议可以使用@babel/register,它应该可以即时编译 javascript。

当我添加@babel/register并包含require("@babel/register");在测试文件中时,该测试文件不再抱怨,但现在 Hardhat 内部的一些东西抱怨。

$ npx hardhat test
An unexpected error occurred:

.../solidity/src/utils/helpers.js:55
export async function aSymbol() {
^^^^^^

SyntaxError: Unexpected token 'export'
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1031:15)
    at Module._compile (node:internal/modules/cjs/loader:1065:27)
    at Module._compile (/Users/dan/work/lore/lore/solidity/node_modules/pirates/lib/index.js:136:24)
    at Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.newLoader [as .js] (/Users/dan/work/lore/lore/solidity/node_modules/pirates/lib/index.js:141:7)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)

如何使用 Babel 和 Hardhat 正确编译 ESModuleimport以用于使用 CommonJS 的 Hardhat 测试require

4

0 回答 0