# ์ต์ ๋ทฐ CLI์ ๋น๋ ํ๊ฒฝ ๊ท์น
์ด๋ฒ ์ฑํฐ์์๋ ๋ทฐ CLI ๋ฒ์ 3 ์ด์์์๋ง ์ ์ฉ๋๋ ๋ช ๊ฐ์ง ๋น๋ ํ๊ฒฝ ๊ท์น์ ์์๋ณด๊ฒ ์ต๋๋ค.
# ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋
๋ทฐ CLI 3์์๋ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ฒ 3๊ฐ์ง ๋ชจ๋๊ฐ ์์ต๋๋ค.
development
: ํ๋กํ ํ์ดํ ๋ฐ ๊ฐ๋ฐ ์ฉ๋.npm run serve
๋ช ๋ น์ด๋ก ์คํํ ๋์ ๋ชจ๋production
: ์์ฉํ ๋ฐ ๋ฐฐํฌ ์ฉ๋.npm run build
๋ช ๋ น์ด๋ก ์คํํ ๋์ ๋ชจ๋test
: ํ ์คํธ ์ฉ๋.npm run test:unit
๋ช ๋ น์ด๋ก ์คํํ ๋์ ๋ชจ๋
์์ ๋ชจ๋๋ NODE_ENV
๋ณ์ ๊ฐ๊ณผ๋ ์ฐ๊ด์ด ์์ต๋๋ค. ๊ฐ๋ฐ ๋ชจ๋๋ก ์คํํ ๊ฒฝ์ฐ์๋ ์๋์ผ๋ก NODE_ENV
๊ฐ์ด development
๋ก ์ค์ ์ด ๋๊ณ , ๋ฐฐํฌ ๋ชจ๋๋ก ์คํํ ๊ฒฝ์ฐ์๋ production
์ผ๋ก ์ค์ ๋ฉ๋๋ค.
# ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋์ ๋ฐ๋ผ ๋ทฐ CLI๊ฐ ํด์ฃผ๋ ์ผ?
๋ทฐ CLI๋ก ์์ฑํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ๋๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์นํฉ์ ์ฌ์ฉํฉ๋๋ค. ๋ฐ๋ผ์, ๋ชจ๋์ ๋ฐ๋ผ ์นํฉ์ ์ค์ ์ด ๋ฌ๋ผ์ง๋๋ค. ์๋ฅผ ๋ค๋ฉด, ๊ฐ๋ฐ ๋ชจ๋์ผ ๋๋ ์นํฉ ๋ฐ๋ธ ์๋ฒ๋ฅผ ์คํํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ ๋น๋ ํ๋ฉด์ ํ๋กํ ํ์ดํ ํด๋๊ฐ ์ ์๊ณ ์์ฉ ๋ชจ๋์ผ ๋๋ ์นํฉ์ผ๋ก ๋น๋๋ ํ์ผ์ ์ด๋ฆ์ ํด์ฌ ๊ฐ์ ๋ถ์ฌ ์บ์ฑ๊ณผ ๊ฐ์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
# ํ๊ฒฝ ๋ณ์ ํ์ผ ๊ท์น
๋ทฐ CLI 3์์๋ ํ๋ก์ ํธ ๋ฃจํธ ํด๋์ ์๋์ ๊ฐ์ ๊ท์น์ผ๋ก ํ๊ฒฝ ๋ณ์ ํ์ผ์ ์์ฑํ ์ ์์ต๋๋ค.
.env # ๋ชจ๋ ๋ชจ๋์ ์ ์ฉ๋๋ ํ๊ฒฝ ๋ณ์ ํ์ผ
.env.local # ๋ชจ๋ ๋ชจ๋์ ์ ์ฉ๋๋ ๊ฐ์ธ๋ง ์ฌ์ฉํ๋ ํ์ผ(git์ ์ฌ๋ผ๊ฐ์ง ์์)
.env.[mode] # ํน์ ๋ชจ๋์ ํด๋นํ๋ ํ๊ฒฝ ๋ณ์ ํ์ผ
.env.[mode].local # ํน์ ๋ชจ๋์ ํด๋นํ์ง๋ง ๊ฐ์ธ์ด ์ฌ์ฉํ๋ ํ์ผ(git์ ์ฌ๋ผ๊ฐ์ง ์์)
์ฌ๊ธฐ์ ๋งํ๋ ๋ชจ๋๋ ์์์ ์ดํด๋ดค๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋๋ฅผ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์์ฉ ๋ฒ์ ์ ํด๋นํ๋ ํ๊ฒฝ ๋ณ์ ํ์ผ์ ์๋์ ๊ฐ์ต๋๋ค.
.env.production
# ํ๊ฒฝ ๋ณ์ ํ์ผ ์ ์ฉ ์์
์๋์ ๊ฐ์ด ๊ฐ๋ฐ ํ๊ฒฝ์ธ์ง ๋ฐฐํฌ ํ๊ฒฝ์ธ์ง์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ ํ๊ฒฝ ๋ณ์ ํ์ผ์ ๋ถ๋ฆฌํ ์๋ ์์ต๋๋ค.
- .env
- .env.development
- .env.production
# .env
VUE_APP_URL=https://domain.com
# .env.development
VUE_APP_URL=https://localhost:8080
# .env.production
VUE_APP_URL=https://123.123.123.123:9090
์ด๋ ๋ฐฐํฌ ๋ชจ๋์ธ npm run build
๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๊ฒ ๋๋ฉด .env.production
ํ์ผ์ ๋ด์ฉ์ด ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์, ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉํ VUE_APP_URL
๊ฐ์ ์๋์ ๊ฐ์ด ์ค์ ๋ฉ๋๋ค.
// main.js
console.log(VUE_APP_URL) // https://123.123.123.123:9090
์์ฒ๋ผ ํน์ ๋ชจ๋์ ํด๋นํ๋ ํ๊ฒฝ ๋ณ์์ ํ์ผ์ ๊ฐ์ด ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค.
TIP
๋ง์ฝ .env.development
, .env.production
๋ฑ์ ํ์ผ์ด ์๋ค๋ฉด .env
ํ์ผ์ ์ค์ ํ ๊ฐ์ด ์ต์ข
๊ฐ์ด ๋ฉ๋๋ค.
# ๊ฐ๋ฐํ ๋๋ ๋ก์ปฌ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉ
์์ ๊ท์น๋ค์ ์ธ์งํ ์ํ์์ ํ ๊ณต์ฉ์ผ๋ก ์ฌ์ฉํ๋ ํ๊ฒฝ ๋ณ์ ์ด์ธ์ ๊ฐ์ธ์ ์ผ๋ก ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
.env.development # ํ ๊ณต์ฉ ํ๊ฒฝ ๋ณ์
.env.development.local # ๊ฐ์ธ ๋๋ฒ๊น
๋๋ ๊ฐ๋ฐ์ฉ ํ๊ฒฝ ๋ณ์
ํ ๊ณต์ฉ์ผ๋ก ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ค์ ๊ฐ๋ค์ .env.development
ํ์ผ์ ๊ด๋ฆฌํ๊ณ , ๊ฐ์ธ์ ์ผ๋ก ๋ก์ปฌ ๋๋ ํน์ ์๋ฒ ๋๋ฒ๊น
์ ์ํด .env.development.local
ํ์ผ์ ๊ด๋ฆฌํ๋ฉด ์ข์ต๋๋ค.
# .env.development
VUE_APP_URL=http://internal.server.address:8080
# .env.development.local
VUE_APP_URL=http://localhost:8081
์์ ๊ฐ์ด ํ์ฉํ๋ ๊ฒฝ์ฐ .local
ํ์ผ์ git์๋ ์ฌ๋ผ๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ํธํ๊ฒ API ์๋ํฌ์ธํธ(URL)๋ฅผ ๋ฐ๊ฟ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
โ Environment Variables Project Setup โ