CRA(create-react-app)에서 webpack polyfill 설정
Reactpolyfillcreate-react-appwebpackconfig-overrides.jsreact-scriptpackage.json
1. 필요한 polyfill 모듈 설치
npm i react-app-rewired crypto-browserify stream-browserify assert stream-http https-browserify os-browserify url buffer process web3-utils
2. webpack 설정파일 작성
/config-overrides.js
const webpack = require("webpack");
module.exports = function override(config) {
const fallback = config.resolve.fallback || {};
Object.assign(fallback, {
crypto: require.resolve("crypto-browserify"),
stream: require.resolve("stream-browserify"),
assert: require.resolve("assert"),
http: require.resolve("stream-http"),
https: require.resolve("https-browserify"),
os: require.resolve("os-browserify"),
url: require.resolve("url"),
});
config.resolve.fallback = fallback;
config.plugins = (config.plugins || []).concat([
new webpack.ProvidePlugin({
process: "process/browser",
Buffer: ["buffer", "Buffer"],
}),
]);
return config;
};
3. react-script 명령어 변경
package.json
{
...
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
},
...
}
4. 실행
npm run start