kpa pedia 프로젝트를 netlify로 배포하는데 아래와 같은 문제가 발생했다.
해결에 필요한 패키지를 설치한다. 필요 없는 패키지가 아래 목록 중 포함 되어있을 수 있다.
yarn add url webpack-cli stream-http stream-browserify react-app-rewired os-browserify os https-browserify fs crypto-browserify buffer assert process
package.json에 script 부분을 수정한다.
// package.json
...
"scripts": {
"start": "react-app-rewired start",
"build": "react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-app-rewired eject"
},
...
root 경로(package.json과 같은 위치)에 config-overrides.js를 생성한다.
// config-overrides.js
module.exports = {
// The Webpack config to use when compiling your react app for development or production.
webpack: function (config, env) {
const overridedConfig = {
...config,
resolve: {
...config.resolve,
fallback: {
...config.resolve.fallback,
fs: false,
net: false,
stream: require.resolve('stream-browserify'),
crypto: require.resolve('crypto-browserify'),
http: require.resolve('stream-http'),
https: require.resolve('https-browserify'),
os: require.resolve('os-browserify/browser'),
url: require.resolve('url'),
},
},
};
return overridedConfig;
},
};
root 경로(package.json과 같은 위치)에 webpack.config.js를 생성한다.
const webpack = require('webpack');
module.exports = {
plugins: [
new webpack.ProvidePlugin({
process: 'process/browser',
}),
],
};
webpack polyfills 이슈과 연간이 있다. react-app-rewired 패키지 이용해서 웹팩 오버라이딩 해주니 정상적으로 빌드되었다.