rsc*_*c05 -1 javascript reactjs ethereum web3-react
我在将 web3 导入到 ReactJS 时遇到问题。要复制我的问题,请初始化一个新的反应应用程序
npx create-react-app my-app
cd my-app
Run Code Online (Sandbox Code Playgroud)
然后在此位置打开终端。写:
npm install web3
npm install
Run Code Online (Sandbox Code Playgroud)
在 App,js 文件中添加以下行
import Web3 from "web3";
Run Code Online (Sandbox Code Playgroud)
我在执行此操作后收到错误,npm start然后收到未解决的错误,即
找不到模块:错误:无法解析“流”
找不到模块:错误:无法解析“加密”
我尝试在网上寻找解决方案,特别是我尝试了以下每个
似乎没有人适合我。对于如何解决这个问题有什么建议吗?谢谢你!
这是我截至 2022 年 2 月 2 日的解决方案。将来可能会发生变化。
启动 React 应用程序后
npx create-react-app my-app
cd my-app
Run Code Online (Sandbox Code Playgroud)
您将需要安装一些软件包:
npm i web3, react-app-rewired, url, assert, buffer, crypto-browserify, stream-http, https-browserify, stream-browserify, os-browserify
Run Code Online (Sandbox Code Playgroud)
然后你在终端上打开你最喜欢的代码编辑器,在我的例子中它是 MS VS Code 编辑器
code .
Run Code Online (Sandbox Code Playgroud)
在根目录下创建一个JS文件,如下config-overrides.js
复制并粘贴此处可用的代码
const webpack = require('webpack');
module.exports = function override(config, env) {
//do stuff with the webpack config...
config.resolve.fallback = {
url: require.resolve('url'),
assert: require.resolve('assert'),
crypto: require.resolve('crypto-browserify'),
http: require.resolve('stream-http'),
https: require.resolve('https-browserify'),
os: require.resolve('os-browserify/browser'),
buffer: require.resolve('buffer'),
stream: require.resolve('stream-browserify'),
};
config.plugins.push(
new webpack.ProvidePlugin({
process: 'process/browser',
Buffer: ['buffer', 'Buffer'],
}),
);
return config;
}
Run Code Online (Sandbox Code Playgroud)
打开package.json更改scripts后的命令:
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-app-rewired eject"
},
Run Code Online (Sandbox Code Playgroud)
这为我解决了问题!
| 归档时间: |
|
| 查看次数: |
3188 次 |
| 最近记录: |