create-react-app安装web3js的坑
坑1、版本5.x 提示各种报错
坑2、在坑1结束后 react项目启动报错Plugin “react“ was conflicted
坑3、 坑1-2解决了 又出现无法加载的问题 我又找了很久答案
终极解决方案
来源 https://stackoverflow.com/questions/69431515/how-to-use-webpack-and-web3-in-react
该问题webpack不再为您解决此处列出的节点核心模块。基本上有 2 个选项可以解决与您使用的特定软件包相关的问题web3:
选项#1:这个只是使用已经为web位于dist/web3.min.js. 因此,然后将您的导入切换为:
import Web3 from “web3/dist/web3.min”;
如果上述解决方案无法解决 再进行下面的坑的解决方法。
react-app-rewired 添加回退,如 Github https://github.com/facebook/create-react-app/issues/11756中所述 安装 react-app-rewired,config-overrides.js
在项目的根目录中创建文件. 我在文件中的代码
module.exports = function override (config, env) { console.log('override') let loaders = config.resolve loaders.fallback = { "fs": false, "tls": false, "net": false, "http": require.resolve("stream-http"), "https": false, "zlib": require.resolve("browserify-zlib") , "path": require.resolve("path-browserify"), "stream": require.resolve("stream-browserify"), "util": require.resolve("util/"), "crypto": require.resolve("crypto-browserify"), //lee add "assert": false, "url": false, "os": false } return config }
在 package.json 中将脚本从 更改 'start': 'react-scripts start'
为 'start': 'react-app-rewired start'
。然后启动项目 npm run start 或 yarn start
命令
sudo npm install react-app-rewired --save-dev
cd /home/www/my-app
vi config-overrides.js 替换 'start': 'react-scripts start' 为 'start': 'react-app-rewired start'
全部修改完后需要哪个npm包没安装再用sudo npm install xx就可以了
坑2修复
解决方法:
在package.json删除
"eslintConfig": { "extends": [ "react-app", "react-app/jest" ] },
删除yarn.lock后执行yarn install
ERROR in Plugin “react” was conflicted
参考
https://stackoverflow.com/questions/70398678/i-tried-to-polyfill-modules-in-webpack-5-but-not-working-reactjs
https://blog.csdn.net/weixin_51277037/article/details/122531372