0. ํ๋ก์ ํธ ๋ง๋ค ํด๋ ์ด๊ธฐ (VScode ์ด๋ฉด ํ์ผ ๋๋ฅด๊ณ ํด๋ ์ด๊ธฐ)
1. npm ๊น๊ธฐ (ํฐ๋ฏธ๋์ npm init -y ) (-y ์ฐ๋ฉด ๋ฉํ๋ฐ์ดํฐ ์ค์ ํ๋ ๊ฑฐ ๊ฑด๋ ๋ฐ๊ฒ ๋ค๋ ์๋ฆฌ)
2. Parcel ๋ฒ๋ค๋ฌ ์ค์น (ํฐ๋ฏธ๋์ npm -i -D parcel)
(์ฌ๊ธฐ์ -D๋ ๊ฐ๋ฐํ ๋๋ง ํด๋น module์ ์ฐ๊ฒ ๋ค๋ ์๋ฏธ, ๋ฐฐํฌ ์ ์ ๋ฐ๋ผ๊ฐ.)
3. package.json์ script ์์ญ ํธ์ง
- script ์์ญ์ ๋ช ๋ น์ด๋ค์ ์ค์ ํ ์ ์์. "A" : "B" ํํ๋ก ์ค์
์ค์ ์ npm run A ๋ผ๊ณ ํฐ๋ฏธ๋์ ์น๋ฉด B๊ฐ ์ํ๋จ.
- ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๊ฐ๋ฐ ์ฉ ๋น๋์ ์ง์ง ์ฐ๋ง ๋ฐฐํฌ ์ ๋น๋๋ก ๋น๋ ๋ช ๋ น์ด๋ฅผ 2๊ฐ๋ก ๋๋ ๊ฒ์.
parcel ์์ build๋ฅผ ์ ์ผ๋ฉด, ๋ฐฐํฌ์ฉ์ผ๋ก ๋น๋ ํ๊ฒ ๋ค๋ ์๋ฆฌ๊ณ ๋น๋ ๊ฒฐ๊ณผ๊ฐ ์ฌ๋์ด ์ฝ๊ธด ์ด๋ ต์ง๋ง, ์ฉ๋ ์ต๋ํ ์ค์ด๊ณ , ์น ๋ธ๋ผ์ฐ์ ์ฌ๋ฆฌ๊ธฐ ์ต์ ํ๋ ์ํ๋ก ๋์จ๋ค.
**์ฃผ์์ ! **
parcel ์ด ./index.html์ ํ๋ค๊ณ ํด์, ํด๋น html ๋ฌธ์๋ง ๋น๋ ํ๋ ๊ฒ์ด ์๋๋ค.
์์ parcel ์์ ์ ์ ์ฃผ์๋ parcel์ด ์ต์ด๋ก ์ด๋ค ํ์ผ์ ๊ธฐ์ ์ผ๋ก ๋ฒ๋ค ๋ ๊ฒ์ธ์ง ๋ช ์ ํ๊ธฐ ์์ ์ด ์ฃผ์์ด๋ค.
4. index.html ํ์ผ ๋ง๋ค๊ธฐ
! tab ์น๋ฉด ๊ธฐ๋ณธ ์ค์ ์ ์์์ ๋ค ๋จ.
์ฐ๋ฆฌ๊ฐ ์ถ๊ฐ ํด์ค์ผ ํ ๊ฒ.
<script> ํ๊ทธ๋ JS๋ฅผ ์ฐธ์กฐํด์ ์ฐ๊ธฐ ์ํ ํ๊ทธ์ด๋ค.
-์์ฑ ์ค๋ช
- - src ์์ฑ์ ์ ํ์๋ ์ฃผ์์ JS ํ์ผ์ ๋ค์ด ๋ฐ์์ ์ฌ์ฉํจ.
- - ์ฐ๋ฆฌ๊ฐ ์ฐ๋ ค๋ JS ํ์ผ์ด Module์ผ ๊ฒฝ์ฐ type = "module"์ด๋ผ๋ ์์ฑ์ ์จ์ผ ํจ.
- - ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ JS ํ์ผ์์ HTML ํ๊ทธ๋ค์ ์ฌ์ฉํด์ผ ํ ๊ฒฝ์ฐ, ์น ๋ธ๋ผ์ฐ์ ๊ฐ HTML์ ๋จผ์ ๋ค ์ฝ๊ณ ๋ถ์ํ ๋ค์์ JS vํ์ผ์ ๋ค์ดํด ์ฌ์ฉ ํ๋๋ก ํด์ผํ๋ค. defer๋ผ๋ ์์ฑ์ ์ ์ผ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ HTML์ ๋จผ์ ๋ถ์ ๋คํ๊ณ , JS ํ์ผ์ ์ฐ๋ค.
** ์ฐ๋ฆฌ๊ฐ ์ฐ๋ ค๋ ๊ฑด ๊ทธ๋ฅ JS ํ์ผ ์๋๊ฐ? NO! **
import๋ฅผ ํตํด ๋ค๋ฅธ module์ ์ฌ์ฉํ ์๊ฐ ๋ถํฐ ํด๋น JS ํ์ผ์ Module์ด ๋๋ค.
5. main.js ๋ง๋ค๊ธฐ
์์ง ๋ณ๋ค๋ฅธ ๋ด์ฉ x
6. ์ค์ค๋ก ํด๋ณด๊ธฐ
- ์์ ์ฉ ํด๋๋ฅผ ๊ทธ๋ฅ ์์ ๋ฐ๋ก ๋ง๋ค์.