빌드환경에 해당하는 .env 파일 사용하기
먼저, 필요한 노드모듈을 설치한다.
npm install --save-dev dotenv @rollup/plugin-replace
빌드환경은 로컬PC(local), 개발서버(development), 운영서버(production) 총 3가지로 분류할 것이며 이를 Mode라 명칭할 것이다.
프로젝트 루트경로에 모드별 .env 파일을 생성하고 프로퍼티를 작성한다.
.env.local (mode: local)
.env.dev (mode: dev)
.env.real (mode: real)
앱 실행 스크립트에 mode 환경변수를 추가한다.
--environment MODE:[모드]
// package.json
{
"scripts": {
"build-development": "rollup -c --environment MODE:real",
"build-production": "rollup -c --environment MODE:dev",
"local": "rollup -c -w --environment MODE:local",
"start": "sirv public --single --host 127.0.0.1"
}
}
앱 실행 시 모드에 해당하는 .env 파일을 사용하도록 rollup.config.js를 수정한다.
import dotenv from 'dotenv';
dotenv.config({
override: true ,
path: ".env." + process.env.MODE
});
const isLocal = process.env.IS_LOCAL;
svelte 컴포넌트에서 Property 사용하기 (process.env 사용불가함)
rollup.config.js에서 replace 플러그인을 설정해준다.
export default {
....
plugins: [
replace({
// stringify the object
__myapp: JSON.stringify({
env: {
"isLocal": isLocal,
"baseUrl": process.env.BASE_URL
}
}),
}),
],
컴포넌트에서 __myapp.env.xxx 로 사용할 수 있다.
<script>
const isLocal = __myapp.env.isLocal
if (isLocal){
//
}
</script>
{isLocal}
https://medium.com/dev-cafe/how-to-setup-env-variables-to-your-svelte-js-app-c1579430f032
How to setup .env variables to your Svelte JS app
Most of the time writing apps required configuration variables based on the environments like local, qa, stage and production.
medium.com
'생계유지형 개발자 > JS Framework' 카테고리의 다른 글
[Webpack5] 배포환경 별 빌드 설정 및 실행하기 (webpack-merge, dotenv) (0) | 2023.02.13 |
---|---|
[webpack5] HtmlWebpackPlugin 사용하여 html 번들링 시 js 골라서 삽입하기 (0) | 2023.01.20 |
[Svelte] <svelte:self/> 컴포넌트 안에서 자신의 컴포넌트 호출하기 (JsonParser Sample) (0) | 2022.06.28 |
[Svelte] Motion - tweened, spring example (0) | 2022.06.23 |
[Svelte] 기초저ㄱ인 nput 태그 다루기 (0) | 2022.06.15 |