尝试构建我的React项目时出现错误:
./node_modules/ethers/utils/web.js
Module not found: Can't resolve 'xmlhttprequest' in '/mnt/c/Users/.../node_modules/ethers/utils'
在package.json中:
"dependencies": {
"@material-ui/core": "^3.8.1",
"@material-ui/icons": "^3.0.1",
"axios": "^0.18.0",
"immutability-helper": "^2.9.0",
"moment": "^2.22.2",
"react": "^16.7.0",
"react-dom": "^16.7.0",
"react-router-dom": "^4.3.1",
"react-scripts": "^2.1.2"
},
我该怎么办?
答案 0 :(得分:0)
我通过不导入“松露合同”使我的项目再次正常运行。 这里有一个React Truffle示例:https://github.com/truffle-box/react-box 不会导入松露合约。 我使我的项目更像那个项目。 然后,我不得不更改代码以使用web3提供的合同界面:https://web3js.readthedocs.io/en/1.0/web3-eth-contract.html
答案 1 :(得分:0)
要解决此问题,您需要按照此问题中的说明安装不同版本的以太币:
https://github.com/trufflesuite/truffle/issues/1614#issuecomment-452158490
带有解决方案的精确注释:
ethers(v4.0.0-beta.1)作为web3-eth-abi的依赖项安装 (v1.0.0-beta.37)导致xmlhttprequest投诉和 基本上使松露合约无法使用。我能够解决它 现在可以通过手动将以太币升级到v4.0.20。
$ npm install ethers@4.0.20