8. Post CSS

  • Intro

    • css๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ

    • js ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ถ”๊ฐ€ํ•ด์„œ, css๋ฅผ ๋ชฉ์ ์— ๋งž๊ฒŒ ๋ณ€ํ™”์‹œ์ผœ์ค€๋‹ค.

    • ์›ํ•˜๋Š” ๋ชฉ์ ์— ๋งž๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ฐพ๊ณ , Post css๋ฅผ ์ ์šฉ์‹œํ‚จ๋‹ค.

    • ๊ณต์‹์‚ฌ์ดํŠธ

      • ๊ธฐ๋Šฅ ์˜ˆ

        • auto-prefixer์ œ๊ณต

        • cssdb: cssํ™•์žฅ ์‚ฌ์šฉ

        • css ๋ชจ๋“ˆ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ(์ด๋ฆ„์ด ๊ฒน์น˜์ง€ ์•Š๋„๋ก hash๋ถ™์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ๊ณผ ์œ ์‚ฌ)

        • css๋กœ error ํ”ผํ•˜๊ธฐ: styleint๋ฅผ ํ†ตํ•ด ์ž‘์„ฑํ•œ css์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ํ˜•์‹์— ๋งž์ง€ ์•Š๋Š” ํ‘œํ˜„์ด ์žˆ์„๊ฒฝ์šฐ ์•Œ๋ ค์คŒ.

        • grid์‹œ์Šคํ…œ์„ calcํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ.

      • ์œ„ ๊ธฐ๋Šฅ๋“ค ์ค‘, auto-prefixer, stylelint๋ฅผ ์ ์šฉํ•ด๋ณด์ž!

  • auto prefixer

    • prefixer: ์ ‘๋‘์‚ฌ

    • vendor-prefixer:

      • ๊ฐ ์›น๋ธŒ๋ผ์šฐ์ €์‚ฌ ๋ณ„๋กœ ์ŠคํŽ™์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•จ.

      • ํ‘œ์ค€์ด ๋˜๊ธฐ ์ด์ „์— ๊ฐ ๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์ž๋ณ„๋กœ ์ƒˆ๋กœ์šด ์‹คํ—˜์ ์ธ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๋•Œ ์ด์ „ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ทธ ์‚ฌ์‹ค์„ ์•Œ๋ฆฌ๊ธฐ์œ„ํ•œ ์ ‘๋‘์‚ฌ

      • vendor-prefixer๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ, ์ตœ์‹ ์— ์ œ๊ณต๋˜๋Š” ๊ธฐ๋Šฅ๋“ค๋„, ํ•˜์œ„๋ธŒ๋ผ์šฐ์ €์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

      • ์ฝ”๋”ฉ์„ ํ•˜๋ฉด์„œ ๊ณ„์† prefixer๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค๋ฉด ๊ต‰์žฅํžˆ ๋ฒˆ๊ฑฐ๋กœ์šด ์ผ์ด๋‹ค.

      • Post CSS์˜ auto-prefixer๋ฅผ ์„ค์ •ํ•ด์„œ ํ•ด๊ฒฐํ•ด๋ณด์ž!

  • ์‹ค์Šต ์ˆœ์„œ

    • postcss, autoprefixer, postcss-loader ์„ค์น˜

      npm i postcss autoprefixer postcss-loader -D
    • postcss.config.js ํŒŒ์ผ ์ƒ์„ฑํ›„ ์„ค์ •

      • ์–ด๋–ค ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ ์šฉ์‹œํ‚ฌ์ง€ ํŒŒ์ผ(๋ชจ๋“ˆ)๋กœ ๋ณ„๋„๋กœ ๋นผ์„œ ์ •์˜.

        module.exports = {
        plugins: [require('autoprefixer')],
        };
    • webpack.common.jsํŒŒ์ผ ์ˆ˜์ •

      • ๊ฐœ๋ฐœ๋ชจ๋“œ, ๋ฐฐํฌ๋ชจ๋“œ ๋ชจ๋‘ ์“ฐ๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์— ์„ค์ •

      • postcss loader ์‹๋ณ„์ž์— ํ• ๋‹น

        const postcssLoader = {
            loader: 'postcss-loader',
            options: {
                config: {
                    path: 'postcss.config.js',
                },
            },
        };
    • css๊ฐ€ ์ ์šฉ๋˜๋Š” ์ˆœ์„œ(๋จผ์ € ์ ์šฉ์‹œ์ผœ์•ผํ•˜๋Š”๊ฒŒ ๋งจ ์•„๋ž˜๋กœ ๊ฐ€์•ผํ•œ๋‹ค!!!)

      • 'sass-loader': SASS => CSS๋กœ ๋ณ€ํ™˜

      • 'postcssLoader': ๋‹ค๋ฅธ js ํ”Œ๋Ÿฌ๊ทธ์ธ์„ css์˜ ๋ชฉ์ ์— ๋งž๊ฒŒ ๋ณ€ํ™”(autoprefix)

      • 'css-loader: cssํŒŒ์ผ์„ ๋ชจ๋“ˆ๋กœ์จ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜.(import, require์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•จ)

      • MiniCssExtractPlugin.loader: style tag ๋Œ€์‹  css ํŒŒ์ผ๋กœ ๋งŒ๋“ค๊ธฐ

  • ๊ฒฐ๊ณผํ™•์ธ

    • css์— ์ ‘๋‘์‚ฌ๊ฐ€ ๋ถ™์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•  ๊ฒƒ

    • ๊ฐœ๋ฐœ์ž ๋„๊ตฌ - Network ํƒญ - css - ํŒŒ์ผ ํด๋ฆญ ํ›„ - Previewํƒญ์—์„œ ํ™•์ธ

      • webkit์ด ๋ถ™์–ด์žˆ๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค~

    • ๋‹จ, ๋ธŒ๋ผ์šฐ์ € ์ ์šฉ๋ฒ”์œ„๋ฅผ ์„ค์ •์„ ํ•ด์•ผ ๋ฒค๋”์‚ฌ๋ณ„ ์ ‘๋‘์‚ฌ๊ฐ€ ๋ถ™์„ ์ˆ˜ ์žˆ์Œ. => Blowsers List(๋‹ค์Œ์ฑ•ํ„ฐ)

Last updated