본문 바로가기

Youtube Clone Coding

webpack으로 scss 쓰기

먼저 client 폴더 안에 scss폴더를 만들고 styles.scss를 만들어준다. 여기에 아무코드나 입력해준다. 아직 까지는 웹팩이 scss를 구형의 css파일로 변환해주는 능력이 없다. 따라서 webpack.config.js 파일을 다음과 같이 수정해준다.

const path = require("path");

module.exports = {
    entry: "./src/client/js/main.js",
    mode: "development",
    output: {
        filename: "main.js",
        path: path.resolve(__dirname, "assets", "js"),
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                use: {
                    loader: "babel-loader",
                    options: {
                        presets: [["@babel/preset-env", { targets: "defaults" }]],
                    },
                },
            },
            {
                test: /\.scss$/,
                use: ["style-loader", "css-loader", "sass-loader"]
            }
        ],
    },
};

rules에 scss관련 코드가 추가된 것을 볼 수 있다. 이는 scss형식의 파일을 받아들여서 css로 변환한다는 것이다. 이때 use에 여러가지가 있는데, 이는 각각 npm install을 통해서 다운로드 받은것이고 scss -> css로 하기 위해 필요한 것들이다. 웹팩이 하는일은 다음과 같다.

웹팩은 엔트리 파일을 읽고 가져온다. 웹팩은 이 파일이 js 파일인것을 알기 때문에 babel을 통해서 변환을 진행한다. 이 js 파일에 import를 통해 scss가 있는것을 보고 scss파일을 css파일로 변환한다. 그리고 이 변환한 내용을 적용한다. 특히 변환된 css파일은 웹페이지에가서 inspect(검사) 해보면, head 태그에 들어가 있음을 알 수 있다.

 

+++ 

sass-loader : scss를 일반적인 css로 바꾸어주는 역할을 한다.

style-loader : css 코드를 브라우저에 적용하는 역할을 한다.

 

 

'Youtube Clone Coding' 카테고리의 다른 글

webpack  (0) 2022.11.23
프로필에 영상 리스트 보여주기  (0) 2022.11.22
ref와 populate  (0) 2022.11.22
Video와 User 모델 연결 & 영상 보여주기  (0) 2022.11.22
유저 프로필 페이지  (2) 2022.11.22