JavaScript - The Complete Guide 2022

Section 21: JavaScript Tooling - Beyond Basic Projects

olivia_yj 2022. 11. 4. 01:57

The goals

๐Ÿ’ช๐ŸปWhat & Why?

โœŒ๐ŸปExample Setup

 

 

ESLint

 

ESLint ๊ตฌ์„ฑํ•˜๊ธฐ

ESLint๋Š” ๋‹ค์–‘ํ•œ ์˜ต์…˜์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์š”๊ตฌ์‚ฌํ•ญ์— ์ •ํ™•ํžˆ ๋งž๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ๋ถ€ํ„ฐ ์ž์‹ ๋งŒ์˜ ๊ทœ์น™์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ(๊ฐ•์˜์—์„œ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ•œ ์ž‘์—…์ด์ฃ ), ์‚ฌ์ „ ์„ค์ •๊ณผ ๋ฏธ๋ฆฌ ๊ตฌ์„ฑ๋œ ๊ทœ์น™ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

.eslintrc.json์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์˜ต์…˜์„ ์™„์ „ํžˆ ์ดํ•ดํ•˜๋ ค๋ฉด ๊ณต์‹ ๋ฌธ์„œ์˜ ์ด ๋ถ€๋ถ„์ด ๋„์›€์ด ๋  ๊ฒ๋‹ˆ๋‹ค.
 https://eslint.org/docs/user-guide/configuring

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ทœ์น™๊ณผ ๊ทธ ์˜๋ฏธ๋ฅผ ์•Œ์•„๋ณด๋ ค๋ฉด ๊ณต์‹ ๋ฌธ์„œ์˜ ์ด ๋ถ€๋ถ„์„ ์‚ดํŽด๋ณด์„ธ์š”. 
https://eslint.org/docs/rules/

์‚ฌ์ „ ์„ค์ •์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”? ์ด ๋งํฌ๋ฅผ ํ™•์ธํ•ด ๋ณด์„ธ์š”.
https://www.npmjs.com/search?q=eslint-config (๊ฒฐ๊ณผ ์ค‘ ํ•˜๋‚˜๋ฅผ ํด๋ฆญํ•˜๊ณ  ๊ฑฐ๊ธฐ์— ์ œ๊ณต๋œ ์ง€์นจ์„ ๋”ฐ๋ฅด๋ฉด ๋ฉ๋‹ˆ๋‹ค)

์ด ๋ฌธ์„œ๋„ ์ฐธ๊ณ ํ•ด ๋ณด์„ธ์š”. 
https://eslint.org/docs/user-guide/getting-started

 
 

Webpack

 
๋ณด๋„ˆ์Šค: ๋‹ค์ˆ˜์˜ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ

์˜ˆ์ œ ํ”„๋กœ์ ํŠธ์—๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋ณธ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ app.js๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ HTML ํŽ˜์ด์ง€๊ฐ€ ์žˆ๋Š” ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋‹ค์ˆ˜์˜ ํŽ˜์ด์ง€(HTML ํŒŒ์ผ)์— ๋Œ€ํ•ด ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฒˆ๋“ค์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜ ์ด์ƒ์˜ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ฆ‰ ๋ชจ๋“  HTML ํŽ˜์ด์ง€๊ฐ€ ๋™์ผํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹Œ ๊ฒฝ์šฐ).

์ด๋Š” Webpack์œผ๋กœ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ์ฝ”๋“œ ๋Œ€์‹ 

entry: './src/app.js'

์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”

entry: {
   welcome: './src/welcome-page/welcome.js',
   about: './src/about-page/about.js',
   // ๊ธฐํƒ€ ๋“ฑ๋“ฑ
}

์ด์ œ Webpack์€ ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ๋‹น ํ•˜๋‚˜์˜ ๋ฒˆ๋“ค์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ฐ HTML ํŒŒ์ผ์—์„œ ์ด๋Ÿฌํ•œ ๋ฒˆ๋“ค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•œ ๊ฐ„๋‹จํ•œ ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ HTML ํŒŒ์ผ๋‹น ํ•˜๋‚˜์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ HTML ํŒŒ์ผ๋‹น ํ•˜๋‚˜์˜ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ ๊ฐ€์ง€๊ธฐ.

๋ฌผ๋ก  ์—ฌ๋Ÿฌ HTML ํŒŒ์ผ์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ๊ทœ์น™์„ ๋”ฐ๋ฅด์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‘ ์ž๋ฃŒ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ณต์‹ Webpack ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜์—ฌ ์ž์„ธํžˆ ํ™•์ธํ•ด ๋ณด์„ธ์š”. https://webpack.js.org/guides/

 

 

Sources

https://eslint.org/

 

Find and fix problems in your JavaScript code - ESLint - Pluggable JavaScript Linter

A pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript. Maintain your code quality with ease.

eslint.org

https://webpack.js.org/

 

webpack

webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.

webpack.js.org