티스토리 뷰
nodejs v20.6.0 버전이 2023년 9월 4일 공개가 되었는데요
이 좋은 소식을 얼른 알리려다가 이제야 포스팅을 작성하게 되네요
https://nodejs.org/en/blog/release/v20.6.0
가장 주목할만한 업데이트는 환경변수를 위한 env 파일의 지원입니다
node --env-file=.env index.js
ini 형태의 key-value를 갖는 파일을 읽을수 있으며, 이를 환경변수로 사용합니다
--env-file 옵션을 사용하면 되고, 별다른 패키지를 설치하지 않아도 됩니다
nvm install 20.6.0
nvm use 20.6.0
node -v
v20.6.0
이렇게 v20.6.0 이상의 버전을 설치하시고
.env 파일을 작성합니다 기존처럼요
// .env
HELLO="World"
그리고 해당 env 값을 읽는 코드를 작성하겠습니다
// index.js
console.log(`Hello ${process.env.HELLO}`)
node를 실행할때 --env-file 옵션에 .env 파일의 경로를 포함하여 실행해주시면 됩니다
node --env-file=.env index.js
Hello World
이 분야에서 가장 유명한 패키지가 dotenv 인데요
dotenv를 당장 버려도 되나? 라는 질문에는 선뜻 예라고 답하기 어렵습니다
왜그럴까요
1. 멀티라인을 지원하지 않습니다
# .env.multiline
HELLO="This
is
a
multiline"
node --env-file=.env.multiline index.js
Hello undefined
2. 덮어쓰기 옵션이 없습니다
# .env
HELLO="World"
export HELLO="System"
node --env-file=.env index.js
Hello System
미리 설정된 동일한 이름의 환경변수가 존재하는경우 해당 값이 우선 사용됩니다
기존에 설정된 환경변수 값을 무시할지 말지에 대한 옵션을 설정할수 없습니다
3. 확장 변수
dotenv의 확장팩(?)인 dotenv-expand 패키지에서는 다음과 같은 기능을 제공합니다
# .env
PASSWORD="password123"
SECRET=$PASSWORD
이렇게 선언된 다른 환경변수를 참조하여 확장된 변수를 만들수 있는데요
node v20.6.0의 기본기능은 해당 구문을 인식하지 않습니다
node --env-file=.env index.js
The secret is $PASSWORD
제가 생각하는 가장 큰 단점은 overwrite에 대한 옵션이 없다는부분인데요
그래도 환경변수 관리가 심오하지 않은 작은 프로젝트에서는 충분히 사용하기 좋겠습니다
참고
https://www.dotenv.org/blog/2023/10/28/node-20-6-0-includes-built-in-support-for-env-files.html
'BACKEND > NODEJS' 카테고리의 다른 글
nodejs 프로젝트의 ci 설정 다시 보기 (0) | 2024.05.23 |
---|---|
더 나은 TS/JS 코드 작성을 위해 피해야할것 4가지 (1) | 2024.02.14 |
nodejs18이상부터는 nodemon을 사용하지 않아도 됩니다 (0) | 2023.07.31 |
docker 기반 nodejs 웹 어플리케이션을 만드는 좋은 습관 (0) | 2023.07.10 |
bulljs 를 사용할때 redis memory를 관리하기 (0) | 2023.05.08 |
- Total
- Today
- Yesterday
- 소프트웨어
- 구글
- AWS
- 네이버
- 안드로이드
- 게임
- 대학생
- 웹표준
- 앱스토어
- 모바일
- 공모전
- 아이폰
- 창업
- android
- 자바스크립트
- JavaScript
- 앱
- 아이디어
- 벤처
- 어플리케이션
- 트위터
- 스마트폰
- iPhone
- Apple
- 경진대회
- 애플
- CSS
- php
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |