在 Jest 中使用 web3.js 时出错
Error when using web3.js with Jest
当我运行以下使用web3.js包的Jest测试时
const Web3 = require("web3");
test("Web3 version", function()
{
expect(Web3.version).toEqual("1.0.0-beta.23");
});
我收到以下错误
Cannot find module './build/Release/scrypt' from 'index.js'
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:191:17)
web3 似乎已正确安装,因为以下正确输出 Web3 version = 1.0.0-beta.23
const Web3 = require("web3");
console.log("Web3 version = " + Web3.version);
我是 Jest 的新手(今天第一次使用它)所以我不确定问题是我的 Jest installation/setup 还是 web3.js.
我在 GitHub 上创建了一个简单的项目来重现这个问题
https://github.com/naddison36/web3-jest
我的机器是 运行ning Mac OS X 10.12.6
,节点 v6.10.3
和 npm 3.10.10
。
测试项目正在使用 web3.js 版本 1.0.0-beta.23
和 Jest 21.2.1
在你的 package.json 中添加 "node" 到 jest -> moduleFileExtensions 应该修复它。
{...
"jest": {
"testRegex": "(/__tests__/.*|(\.|/)(test|spec))\.(jsx?|tsx?)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx",
"json",
"node"
]
}
}
参考:https://facebook.github.io/jest/docs/en/configuration.html#modulefileextensions-array-string
作为解决方法,将此行 require("./build/Release/scrypt") 更改为 require("scrypt") from '/node_modules/scrypt/index.js'
当我运行以下使用web3.js包的Jest测试时
const Web3 = require("web3");
test("Web3 version", function()
{
expect(Web3.version).toEqual("1.0.0-beta.23");
});
我收到以下错误
Cannot find module './build/Release/scrypt' from 'index.js'
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:191:17)
web3 似乎已正确安装,因为以下正确输出 Web3 version = 1.0.0-beta.23
const Web3 = require("web3");
console.log("Web3 version = " + Web3.version);
我是 Jest 的新手(今天第一次使用它)所以我不确定问题是我的 Jest installation/setup 还是 web3.js.
我在 GitHub 上创建了一个简单的项目来重现这个问题 https://github.com/naddison36/web3-jest
我的机器是 运行ning Mac OS X 10.12.6
,节点 v6.10.3
和 npm 3.10.10
。
测试项目正在使用 web3.js 版本 1.0.0-beta.23
和 Jest 21.2.1
在你的 package.json 中添加 "node" 到 jest -> moduleFileExtensions 应该修复它。
{... "jest": { "testRegex": "(/__tests__/.*|(\.|/)(test|spec))\.(jsx?|tsx?)$", "moduleFileExtensions": [ "ts", "tsx", "js", "jsx", "json", "node" ] } }
参考:https://facebook.github.io/jest/docs/en/configuration.html#modulefileextensions-array-string
作为解决方法,将此行 require("./build/Release/scrypt") 更改为 require("scrypt") from '/node_modules/scrypt/index.js'