์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- webpack
- Porject
- object
- slow and steady
- ajax
- addEventListener
- ๋น๋๊ธฐ
- ํผํ
- setTimeout()
- json
- sql
- Project
- promise
- ๋๊ธฐ
- ๊ฒ์
- js
- https://m.blog.naver.com/tt2t2am1118/221010125300
- execCommand
- async
- mysql
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- callback
- prj
- Import
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ
- database
- eport
- await
- JS #ํ๋ก์ ํธ
- db
- Today
- Total
C-log
๐งWebpack : Entry ๋ณธ๋ฌธ
์ง๋ ํฌ์คํ ์์๋ ๋ชจ๋์ด ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ ์ฉ๋๋ ๊ฒ์ด ์๋๋ผ ํ๋ค. ๊ทธ๋์ ์ด๋ฅผ ํด๊ฒฐ ํ๊ธฐ ์ํด์ ์นํฉ์ด ์กด์ฌํ๋ค๋ ๊ฒ์ ๋ํด์ ๋ค๋ฃจ์ด ๋ณด์๋ค.
Webpack
์นํฉ์ ๋ชจ๋๋ก ์ฐ๊ฒฐ(์์กด)๋ ๋ชจ๋ ํ์ด๋ค์ ํ๋๋ก ํฉ์ณ์ฃผ๋ ์ญํ ์ ํ๋ค. ๊ทธ๋ ๊ฒ ํฉ์ณ์ง ํ์ผ์ ๋ฒ๋ค์ด๋ผ๊ณ ํ๋ค. ์นํฉ์ด ๋ฒ๋ค์ ๋ง๋๋ ๋ฒ๋ค๋ฌ ์ญํ ์ ํ๋ค. ๋ฐ๋ผ์ ์นํฉ์ ๋ฒ๋ค๋ฌ๋ผ๊ณ ๋ ํ๋ค. ๋ฐ๋ผ์ ์นํฉ์ ์ค์นํ๋ lic๋ฅผ ์ค์นํ ๊ฒ์ด๋ค.
:: CMD
::npm
npm install webpack webpack-cli --dev
npm install -D webpack webpack-cli
::yarn
yarn add webpack webpack-cli --dev
yarn add -D webpack webpack-cli
์ค์น๊ฐ ์๋ฃ๊ฐ ๋๋ฉด package.json์ devDependencies๊ฐ ์ฝ์ ๋๊ฑธ ์ ์ ์๋ค. ๊ฐ๋ฐ์ฉ ํจํค์ง๋ devDependencies์ ์ ์ฉ์ด ๋๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด dependencies์ ์ ์ฉ์ด ๋๋ ๊ฒ์ ์ ์ ์๋ค.
Entry
์นํฉ์ด ์์ํ๋ ๋ถ๋ถ์ Entry๋ผ๊ณ ํ๋ค. ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ output์ด๋ผ๊ณ ํ๋ค. ์ด์ webpack ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ๊ฒฝ๋ก๋ฅผ ์ค์น ํด์ผํ๋ค.
:: CMD
::npx
"node_modules/.bin/webpack" --help :: ์ง์ ์์น๋ฅผ ํตํ ํน์ ๋ช
๋ น์ด ์ฌ์ฉ
"node_modules/.bin/webpack" --mode development --entry ./src/app.js --output dist/main.js
npx webpack --mode development --entry ./src/app.js --output dist/main.js
::yarn
yarn webpack --mode development --entry ./src/app.js --output dist/main.js
* ์ฃผ์ ์ฌํญ์ผ๋ก ๋งฅ๊ณผ ๋ฌ๋ฆฌ ์๋์ฐ์์ ์ง์ ์์น์ ํน์ ๋ช ๋ น์ด(--help, --output, etc)๋ฅผ ์ฌ์ฉํ ์์๋ ๋ฐ์ดํ("")๋ฅผ ๊ฐ์ธ์ค์ผ ํด๋น ์์น๋ฅผ ์ธ์ ํ๋ฉฐ ํน์ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉ ํ ์ ์๋ค๋ ์ ์ ์ฃผ์ ํด์ผํ๋ค.
* ์ฐธ๊ณ ๋ก webpack 5์ ๊ฒฝ์ฐ --output ์ต์ ์ ๋ช ๋ น์ค์ ์ง์ ์ฌ์ฉํ ์ ์๋ค. webpack-config.js ํ์ผ ๋ด์ output ๊ฒฝ๋ก๋ฅผ ์ค์ ํด์ผํ๋ค. ๋ณธ์ธ์ webpack 4๋ก ๋ค์ด๊ทธ๋ ์ด๋ ํ๋ค.
* ์ถ๊ฐ์ ์ผ๋ก npm์ node_modules์ ์ง์ ์ ๊ทผํ ์๊ฐ ์๋ค ๋ฐ๋ผ์ npx๋ฅผ ์ฌ์ฉํด์ ์ ๊ทผ์ ํด์ผํ๋ค.
* ์์ ๋ฐฉ๋ฒ์ ๋ช ๋ น์ด๋ก ์คํํ๋ ๋ฐฉ๋ฒ์ด์ง๋ง ์ง์ config ํ์ผ์ ์์ฑํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
/* package.json */
//์์ ์
"dependencies": {
"webpack": "^5.0.0",
"webpack-cli": "^4.0.0"
}
//์์ ํ
"devDependencies": {
"webpack": "^4.41.5",
"webpack-cli": "^3.3.10"
}
์ ์ค์น๊ฐ ๋๊ณ ๋๋ฉด distํด๋๊ฐ ์์ฑ๋ ๊ฑธ ํ์ธ ํ ์ ์๋ค. ์ดํ์ html๋ก distํด๋์ main.js๋ฅผ ์ฐ๊ฒฐํด์ ์คํ์ ํด๋ณด๋ฉด ์ ์ ์๋ํ๋ ๊ฒ์ ์ ์ ์๋ค.
webpack.config.js
webpack.config๋ฅผ ์ค์ ํด๋ณผ ๊ฒ์ด๋ค.
/* webpack.config.js */
const path = require('path');
module.exports = {
mode: 'development',
entry: {
main: './src/app.js',
},
output: {
path: path.resolve('./dist'),
filename: '[name].js'
}
}
- path : path ๋ชจ๋์ Node.js์ ๊ธฐ๋ณธ ๋ชจ๋ ์ค ํ๋๋ก, ํ์ผ ์์คํ ๊ฒฝ๋ก๋ฅผ ์ฝ๊ฒ ์กฐ์ํ ์ ์๊ฒ ํด ์ค๋ค. ์ด ๊ตฌ์ฑ์์๋ ์ถ๋ ฅ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ค์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
- module.exports : Node.js์์ ๋ชจ๋์ ๋ด๋ณด๋ผ ๋ ์ฌ์ฉํ๋ ๊ตฌ๋ฌธ์ด๋ค. ES6์์ ์ ๊ณต๋๋ ๋ชจ๋์ด ์์คํ ์ด ์๋๋ผ๋ ์ ์ ๋ ํ์. ์ด ๊ฐ์ฒด๋ฅผ ํตํด ์นํฉ์ ์ฌ๋ฌ ์ค์ ์ ์ ์ํ๋ค.
- mode : ์นํฉ์ ๋น๋ ๋ชจ๋๋ฅผ ์ค์ ํ๋ค. 'development' ๋ชจ๋๋ ๊ฐ๋ฐ ์ค์ ์ ์ฉํ ๋๊ตฌ์ ์ค์ ์ ํ์ฑํํ์ฌ ๊ฐ๋ฐ์์๊ฒ ๋์์ ์ค๋ค. ์๋ฅผ ๋ค์ด, ๋ ๋น ๋ฅธ ๋น๋ ์๊ฐ๊ณผ ๋ ์์ธํ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๋ค. ๋ค๋ฅธ ๋ชจ๋๋ก๋ 'production'์ด ์๋๋ฐ, ์ด๋ ์ต์ ํ๋๊ณ ์์ถ๋ ์์ฐ์ ์์ฑํ๋ค.
- entry : ์นํฉ์ด ๋น๋๋ฅผ ์์ํ ์ง์ ์ ์ ์ ์ํ๋ค. ์ด ์์ ์์๋ main์ด๋ผ๋ ์ด๋ฆ์ ์ง์ ์ ์ด './src/app.js'๋ก ์ค์ ๋์ด ์๋ค. ์ด๋ ์นํฉ์ด ์ด ํ์ผ์ ๋น๋์ ์์์ ์ผ๋ก ์ฌ์ฉํ๋ฉฐ ์ด ํ์ผ์์ ์ฐธ์กฐํ๋ ๋ชจ๋ ๋ชจ๋๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฒ๋ค๋งํ๋ค.
- output : ๋น๋๋ ํ์ผ๋ค์ด ์ด๋์, ์ด๋ค ์ด๋ฆ์ผ๋ก ์ ์ฅ๋ ์ง๋ฅผ ์ ์ํ๋ค.
- path : path.resolve('./dist')๋ฅผ ์ฌ์ฉํด ์ถ๋ ฅ ๋๋ ํ ๋ฆฌ์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ง์ ํ๋ค. ./dist๋ ํ์ฌ ์์ ๋๋ ํ ๋ฆฌ ์๋์ dist ํด๋๋ฅผ ์๋ฏธํ๋ฉฐ path.resolve๋ ์๋ ๊ฒฝ๋ก๋ฅผ ์ ๋ ๊ฒฝ๋ก๋ก ๋ณํํ๋ค.
- filename : '[name].js'๋ ์ง์ ์ ์ ์ด๋ฆ์ ๊ธฐ๋ฐ์ผ๋ก ํ์ผ ์ด๋ฆ์ ๋์ ์ผ๋ก ์์ฑํ๋ค. entry์์ ์ง์ ์ ์ ์ด๋ฆ์ main์ผ๋ก ์ค์ ํ์ผ๋ฏ๋ก ์ถ๋ ฅ ํ์ผ์ ์ด๋ฆ์ main.js๊ฐ ๋๋ค.
์ด์ ์ค์ ๋ webpack.config๋ฅผ ๋ฒ๋ค๋ง ๋๋ ๊ณผ์ ์ npm scripts์ ์์ฑ์ ํด๋ณผ ๊ฒ์ด๋ค. ์๋์ ๊ฐ์ด ์์ ํ๋ฉด ๋๋ค.
/* package.json */
"build": "webpack",
์ดํ์ build๋ฅผ ์คํํ๋ฉด ์ ๋์ํ๋ ๊ฒ์ ์ ์ ์๋ค. build ๋ช ๋ น์ ํ๊ฒ ๋๋ฉด webpack.config.js๋ฅผ ์ฐธ์กฐํด์ ๋น๋ํ๋ค.
::CMD
::npm
npm run build
::yarn
yarn run build
* ์ฐธ๊ณ ๋ก ์ด ์ฝ๋๋ ๊ฐ๋ฐ ํ๊ฒฝ์์ ๊ฐ๋จํ ์นํฉ ์ค์ ์ ๊ตฌํํ ๊ฒ์ผ๋ก ์์ค ํ์ผ ./src/app.js๋ฅผ ์์์ผ๋ก ์์กด์ฑ์ ํด์ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ./dist/main.js๋ก ์ถ๋ ฅํ๋ค. ์ด ์ค์ ์ ๋ฆฌ์กํธ, ๋ทฐ, ์ต๊ทค๋ฌ ๋ฑ์ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ,๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ์ ์ด๊ธฐ ๋จ๊ณ์์ ์์ฃผ ์ฌ์ฉ๋๋ค. ๋ฆฌ์กํธ(๋ทฐ, ๋ฑ)์ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ง์ ์นํฉ ์ค์ ์ ์์ ํ ํ์๋ ์๋๋ก ์ค๊ณ๋์ด ์๋ค. ์นํฉ์ ๋น๋กฏํด ๋ฐ๋ฒจ๊ณผ ๊ฐ์ ๋๊ตฌ๋ค์ด ์ด๋ฏธ ์ค์ ๋์ด ์๋ค.
REF
'โ๏ธReact > ๐งFront-Dev-Environment' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐งWebpack : css-loader, style-loader (0) | 2024.07.17 |
---|---|
๐งWebpack : Loader (0) | 2024.06.23 |
๐งWebpack : module (1) | 2024.06.17 |
๐ง์ธ๋ถ ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ : npm install (0) | 2024.06.17 |
๐งํ๋ก์ ํธ ์์ฑ : NPM&yarn(yarn-berry) (1) | 2024.06.17 |