我正在关注构建你的第一个区块链教程( https://www.youtube.com/watch?v=coQ5dg8wM2o&t=494s )。
我的 index.html 中有以下内容:
<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js/dist/web3.min.js"></script>
<script src="vendor/truffle-contract/dist/truffle-contract.js"></script>
<script src="app.js"></script>
当我打开我的 index.html 页面时,我在控制台上收到以下错误:
(intermediate value).toBigNumber is not a function
at truffle-contract.js:16802
at Object.<anonymous> (truffle-contract.js:17735)
它发生在 truffle-contract.js node_modules 包代码中:
var BigNumber = (new Web3()).toBigNumber(0).constructor;
web3.min.js 文件似乎不支持“toBigNumber”功能。我在 package-lock.json 中有以下依赖项:
"dependencies": {
"web3": {
"version": "0.20.6",
"resolved": "https://registry.npmjs.org/web3/-/web3-0.20.6.tgz",
"integrity": "sha1-PpcwauAk+yThCj11yIQwJWIhUSA=",
"dev": true,
"requires": {
"bignumber.js": "git+https://github.com/frozeman/bignumber.js-nolookahead.git",
"crypto-js": "^3.1.4",
"utf8": "^2.1.1",
"xhr2": "*",
"xmlhttprequest": "*"
}
}
}
不知道在哪里可以获得支持 toBigNumber 函数的正确 web3.min.js 文件
我包含了这个版本的 web3 而不是 v=1.0.0
https://cdn.jsdelivr.net/gh/ethereum/web3.js@0.20.6/dist/web3.min.js
这解决了问题