反应:找不到模块:无法解析“ xmlhttprequest”

时间:2019-01-04 18:21:06

标签: reactjs npm webpack xmlhttprequest truffle

尝试构建我的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" },

我该怎么办?

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