# ํ๊ฒฝ ๋ณ์ ํ์ผ์ ์ด์ฉํ ์ต์ ์ค์
ํ๊ฒฝ ๋ณ์ ํ์ผ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋ ๋ ํน์ ๊ฐ์ ๋๊ธธ ์ ์๋ ๋ณ์๋ฅผ ์๋ฏธํฉ๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์
๊ด์ ์์๋ .env
ํ์ผ์ ์ ์๋ ๋ณ์๋ฅผ ์๋ฏธํ๋ฉฐ ๋ฏธ๋ฆฌ ์ ์๋ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์์ ํ์ฉํ๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
์ด๋ฒ ์ฑํฐ์์๋ Vue.js ์ ํ๋ฆฌ์ผ์ด์
์์ .env
ํ์ผ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
# env ํ์ผ
CLI๋ก ์์ฑํ ํ๋ก์ ํธ๋ก ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๋ฅผ ์งํํ ๋ .env
๋ผ๋ ํ๊ฒฝ ๋ณ์ ํ์ผ๋ก ์ต์
๋ค์ ํธํ๊ฒ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
# .env ํ์ผ VUE_APP_LOCAL_URI=http://localhost:8080/ VUE_APP_TEST_SERVER=http://test.com:9090/ clientId=client-test1234 clientServer=server-test1234
Copied!
์์์ ์ค์ ํ ๋ณ์๋ค์ ๊ฐ์ง๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ํ์ฉํ ์๋ ์๊ณ , ์นํฉ์ผ๋ก ๋น๋๋ฅผ ํ ๋ ์ ๋ณ์์ ๋ด์ฉ์ ๋ฐ์ํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด API์ ํธ์ถ URL ๊ฐ์ผ๋ก .env
ํ์ผ์ ์ ์ํ VUE_APP_LOCAL_URI
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
// api/index.js function fetchUser() { return axios.get(`${VUE_APP_LOCAL_URI}users`); }
Copied!
์์ ๊ฐ์ด ์๋น์ค ์ฝ๋์์ .env
ํ์ผ์ ์ง์ ํ ๋ณ์๋ฅผ ํ์ฉํ๋ ค๋ฉด ์๋์ ๊ฐ์ด ์นํฉ์ ์ถ๊ฐ ์ค์ ์ ํด์ค์ผ ํฉ๋๋ค.
// webpack.config.js const webpack = require('webpack'); const dotenv = require('dotenv'); const env = dotenv.config().parsed; plugins: [ new webpack.DefinePlugin({ VUE_APP_LOCAL_URI: JSON.stringify(env.VUE_APP_LOCAL_URI), }), ],
Copied!
# Vue CLI 3.x ๋ฒ์ ์ ํ๊ฒฝ ๋ณ์ ํ์ผ ์ ๊ทผ
์ต์ ๋ทฐ CLI์์๋ ์์ ๊ฐ์ด ์นํฉ์ DefinePlugin์ ์ค์ ํ์ง ์์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์ ํ์ผ์ ๋ณ์ ๋ช ์ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ์ํ๋ฉด ๋ฉ๋๋ค.
VUE_APP_NUM=10 VUE_APP_STR=hi
Copied!
๋ณ์ ๋ช
์์ ํญ์ VUE_APP_
๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด Vue CLI์์ ๋ด๋ถ์ ์ผ๋ก ์นํฉ DefinePlugin์ ํ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ์น ์์์์ ์ ๊ทผํ ์ ์๊ฒ ์ค์ ๋ฉ๋๋ค.
// main.js import Vue from 'vue'; // ... console.log(VUE_APP_NUM); // 10 new Vue({ // ... })
Copied!
<!-- App.vue --> <template> <!-- ... --> </template> <script> export default { created() { console.log(VUE_APP_STR); // hi } } </script>
Copied!
์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋์ ํ๊ฒฝ ๋ณ์๋ค๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
NODE_ENV
: ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์development
,production
,test
BASE_URL
:vue.config.js
ํ์ผ์ ์ ์๋publicPath
์ ๊ฐ๊ณผ ๋์ผํ ๋ณ์
โ General Guide CLI v3.x Rules โ