01. ์ค๋ฅ
react-datepicker ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๊ณ ํ๋ฉด์์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
ERROR in ../node_modules/react-datepicker/dist/react-datepicker.css 1:0
Module parse failed: Unexpected character '@' (1:0)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
> @charset "UTF-8";
| .react-datepicker__year-read-view--down-arrow,
| .react-datepicker__month-read-view--down-arrow,
@ ./src/components/DatePicker1.jsx 3:0-52
@ ./src/pages/ProductPage/index.jsx 6:0-55 31:28-39
@ ./src/App.jsx 1:0-46 3:36-47
@ ./src/main.js 3:0-24 12:31-34
webpack 5.88.1 compiled with 1 error in 183 ms
ํด๋น ์ค๋ฅ๋ Webpack์ด CSS ํ์ผ์ ์ฒ๋ฆฌํ ์ ์ ํ ๋ก๋๋ฅผ ์ฐพ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๊ณ ํ๋ค. React ํ๋ก์ ํธ์์ CSS ํ์ผ์ ๋ก๋ํ๊ณ ์ฌ์ฉํ ์ ์๋๋ก CSS ๋ก๋๋ฅผ ์ค์ ํด์ผ ํ๋ค.
02. ํ์ํ ํจํค์ง ์ค์น
๋จผ์ , ํ์ํ ๋ก๋ ํจํค์ง๋ค์ ์ค์นํด์ผ ํ๋ค. style-loader์ css-loader๋ฅผ ์ค์นํ์.
npm install style-loader css-loader
package.json์ style-loader์ css-loader ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
"dependencies": {
"css-loader": "^7.1.2",
"moment": "^2.30.1",
"react-datepicker": "^7.0.0",
"style-loader": "^4.0.0"
}
03. Webpack ์ค์ ํ์ผ ์์
Webpack ์ค์ ํ์ผ(webpack.config.js)์ ์์ ํ์ฌ CSS ๋ก๋๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
์ด ์ค์ ์ .sassm, .css ํ์ฅ์๋ก ๋๋๋ ํ์ผ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด style-loader์ css-loader๋ฅผ ์ฌ์ฉํ๋๋ก Webpack์ ์ง์ํ๋ค.
webpack.config.js
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
},
},
{
test: /\.(sass|css)$/,
use: ["style-loader", "css-loader"],
},
],
},
04. CSS ํ์ผ import
Webpack ์ค์ ์ ๋ง์น ํ, React ์ปดํฌ๋ํธ์์ CSS ํ์ผ์ importํ ์ ์๋ค.
import 'react-datepicker/dist/react-datepicker.css';
์ด์ CSS ๋ก๋๋ฅผ ์ค์ ํ๊ณ , CSS ํ์ผ์ importํ์ฌ ์คํ์ผ์ ์ ์ฉํ ์ ์๋ค. Webpack ์ค์ ํ์ผ์ ๋ก๋๋ฅผ ์ถ๊ฐํ๊ณ , ํ์ํ ํจํค์ง๋ฅผ ์ค์นํ ํ, React ์ปดํฌ๋ํธ์์ CSS ํ์ผ์ importํ๋ฉด ๋๋ค.