# ํ๊ฒฝ ๋ณ์ ํ์ผ์ ์ด์ฉํ ์ต์ ์ค์
ํ๊ฒฝ ๋ณ์ ํ์ผ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋ ๋ ํน์ ๊ฐ์ ๋๊ธธ ์ ์๋ ๋ณ์๋ฅผ ์๋ฏธํฉ๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์
๊ด์ ์์๋ .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
์์์ ์ค์ ํ ๋ณ์๋ค์ ๊ฐ์ง๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ํ์ฉํ ์๋ ์๊ณ , ์นํฉ์ผ๋ก ๋น๋๋ฅผ ํ ๋ ์ ๋ณ์์ ๋ด์ฉ์ ๋ฐ์ํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด API์ ํธ์ถ URL ๊ฐ์ผ๋ก .env
ํ์ผ์ ์ ์ํ VUE_APP_LOCAL_URI
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
// api/index.js
function fetchUser() {
return axios.get(`${VUE_APP_LOCAL_URI}users`);
}
์์ ๊ฐ์ด ์๋น์ค ์ฝ๋์์ .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),
}),
],
# Vue CLI 3.x ๋ฒ์ ์ ํ๊ฒฝ ๋ณ์ ํ์ผ ์ ๊ทผ
์ต์ ๋ทฐ CLI์์๋ ์์ ๊ฐ์ด ์นํฉ์ DefinePlugin์ ์ค์ ํ์ง ์์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์ ํ์ผ์ ๋ณ์ ๋ช ์ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ์ํ๋ฉด ๋ฉ๋๋ค.
VUE_APP_NUM=10
VUE_APP_STR=hi
๋ณ์ ๋ช
์์ ํญ์ VUE_APP_
๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด Vue CLI์์ ๋ด๋ถ์ ์ผ๋ก ์นํฉ DefinePlugin์ ํ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ์น ์์์์ ์ ๊ทผํ ์ ์๊ฒ ์ค์ ๋ฉ๋๋ค.
// main.js
import Vue from 'vue';
// ...
console.log(VUE_APP_NUM); // 10
new Vue({
// ...
})
<!-- App.vue -->
<template>
<!-- ... -->
</template>
<script>
export default {
created() {
console.log(VUE_APP_STR); // hi
}
}
</script>
์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋์ ํ๊ฒฝ ๋ณ์๋ค๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
NODE_ENV
: ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์development
,production
,test
BASE_URL
:vue.config.js
ํ์ผ์ ์ ์๋publicPath
์ ๊ฐ๊ณผ ๋์ผํ ๋ณ์
โ General Guide CLI v3.x Rules โ