安全帽测试教程用于require
导入,而不是import
.
该站点将 CommonJS 使用require
和 ESModule 描述为使用import
.
我有一些使用ESModule
样式(导出和导入)的代码,我不能轻易地在 Hardhat 代码中使用它。
如何在安全帽中使用 ESModule 样式的代码?
跑步时npx hardhat test
- 如果我在安全帽代码中使用 ESModule 样式
import
,我会收到您期望的错误:
An unexpected error occurred:
.../solidity/test/some_code.js:6
import { aSymbol } from "../blah/src/utils/helpers"
^^^^^^
- 如果我
require
在安全帽代码中使用,我会收到您对 ESModule 样式的抱怨export
:
.../blah/src/utils/helpers.js:35
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 Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
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)
at Object.<anonymous> (.../solidity/test/some_code.js:5:6)
编辑:这可能是相关的,仍在阅读。