dotenv 를 왜 써야하는가 ? 

프로젝트를 진행할때 개발 대부분 협업으로 진행된다. 하지만 각 개발자가 개발을 하는 환경은 같을 수가 없기 때문에 환경변수를 등록하는 과정에서 의존성 문제가 발생할 수 있다. node에서는 이러한 의존성 문제를 해결하기 위해 dotenv 라는 모듈을 제공한다. 

 

documentation - www.npmjs.com/package/dotenv


1. dotenv 설치

npm install -S dotenv

2. .env 파일 만들어주기

vim .env
// .env 
PORT= 3000

 

프로젝트 환경변수로 사용할 키, 값을 작성해준다.


3.  import 시켜주기 

import 'dotenv' from 'dotenv';
dotenv.config()

프로젝트 루트에 위치한 .env 파일을 로드 시켜준다.


 

4. .env 파일 사용하기 

process.env.<변수명>

const port = process.env.PORT

process.env.<환경변수이름> 을 통해 .env 파일에 위치한 환경변수를 가져올 수 있다.


 

* .env 파일에는 데이터베이스 비밀번호와 같은 민감한 정보가 담겨있음으로 꼭 .gitignore 파일에 넣어주도록하자

 

 

 

'BACKEND > node.js' 카테고리의 다른 글

[Node.js] nodemon, ts-node 로 서버 자동 재시작  (0) 2021.04.20

<배경>

본격적으로 프로젝트를 진행하기 앞서, 코드를 수정할때마다 서버가 자동으로 시작되는 방법을 찾기 시작했다.

코드를 수정할때마다 서버를 수동으로 재시작한다면 무척이나 번거로운 일이 될것임을 잘 알기에..

 

코드를 수정하고 서버를 띄우는 일련의 과정을 생각해보면 이러한 과정이 되겠지만

  • ts 파일이 수정된다.
  • ts 파일을 컴파일 한다.
  • 만들어진 js 파일로 서버를 시작한다.

프로젝트 규모가 커지면 컴파일과정이 길어질테고 코드한줄만 수정이되면 모든 ts 파일이 컴파일됨으로 비효율적이라고 판단했다.

그래서 ts-node 를 사용해 사전컴파일 없이 서버를 띄우는 방법으로 방향을 잡았다.

 

자동으로 서버를 재시작하는 여러가지 방법이 있지만, 이 포스트에서는 Nodemon 으로 프로젝트 내의 변경사항을 감지하고 ts-node 를 사용하여 사전컴파일 작업없이 빠르게 서버를 재시작해주는 과정을 기록할 것이다.

 

* 문제 접근방법이 잘못되었다면 피드백남겨주시면 감사하겠습니다.


Nodemon 이란 ?

Nodemon 은 node.js 기반으로 만들어진 애플리케이션의 파일 시스템을 지켜보며 변경사항이 생기면 프로세스를 자동으로 재시작 시켜주는 CLI 유틸리티이다.

 

* documentation - github.com/remy/nodemon#nodemon


1. Nodemon 설치하기

npm install -D nodemon

nodemon 을 global 혹은 local 에 설치할 수 있다. 해당 글에서는 로컬에 설치 해주었다.

*로컬로 설치할경우 직접 nodemon 에 접근할 수 없다. npx 를 사용해주어야한다. 

 


 

2. ts-node 설치하기

npm install -D ts-node

 

ts-node 는 사전 컴파일 없이 즉시 typescript런타임 환경에서 실행시켜준다. 이 패키지를 사용해 컴파일 없이 서버를 띄울것이다.

 

* documentation - www.npmjs.com/package/ts-node


3. 스크립트 작성

build: 컴파일을 수행

start:  js 로 컴파일된 파일을 사용하여 서버 실행

dev:server: ts 파일만 사용해 서버를 실행

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "tsc",
    "start": "node ./dist/app.js",
    "dev:server": "nodemon --watch src --exec 'npx' 'ts-node' src/app.ts"
  },

* nodemon --watch <감시할 디렉터리> 

* npx ts-node <실행할 ts파일>


4. 명령어

ts 파일을 js 파일로 컴파일 작업 수행

npm run build

js 파일을 런타임에서 서버 시작

npm run start

ts 파일만을 가지고 런타임에서 서버 시작

npm run dev:server

 

'BACKEND > node.js' 카테고리의 다른 글

[node.js] dotenv 환경변수 관리하기  (0) 2021.04.25

+ Recent posts