시퀄라이즈: cross-env
cross-env 패키지를 사용하면 동적으로 process.env(환경 변수)를 변경할 수 있습니다. 또한, 모든 운영체제에서 동일한 방법으로 환경 변수를 변경할 수 있게 됩니다.
기존 package.json을 다음과 같이 바꿉니다.
package.json
{
"name": "nodebird",
"version": "0.0.1",
"description": "익스프레스로 만드는 SNS 서비스",
"main": "server.js",
"scripts": {
"start": "NODE_ENV=production PORT=80 node server",
"dev": "nodemon server",
"test": "jest"
},
...
}
서버 실행을 위한 npm 스크립트를 두 개로 나누었습니다. npm start는 배포 환경에서 사용하는 스크립트고, npm run dev는 개발 환경에서 적용하는 스크립트입니다. npm start 시에 실행되는 명령어가 좀 독특합니다. 앞에 NODE_ENV=production PORT=80이 붙어있습니다. 스크립트를 실행할 때 process.env를 동적으로 절정하는 방법입니다. process.env.NODE_ENV가 production이 되고, process.env.PORT가 80이 됩니다.
그런데 이 방식에는 문제가 있습니다. 리눅스나 맥에서는 되지만, 윈도에서는 process.env를 이얼게 설정할 수 없습니다.
$ npm start
> nodebird@0.0.1 start
> NODE_ENV=production PORT=80 node server
'NODE_ENV' is not recognized as an internal or external command,
operable program or batch file.
이럴 때 cross-env가 사용됩니다. npm을 통해 설치됩니다.
$ npm i cross-env
다시 package.json을 다음과 같이 수정하면 됩니다.
{
"name": "nodebird",
"version": "0.0.1",
"description": "익스프레스로 만드는 SNS 서비스",
"main": "server.js",
"scripts": {
"start": "cross-env NODE_ENV=production PORT=80 node server",
"dev": "nodemon server",
"test": "jest"
},
...
창에 cross-env를 붙임으로써 윈도에서도 실행됩니다.
'프로그래밍 언어 > NODE JS' 카테고리의 다른 글
| pm2(1) (0) | 2026.04.17 |
|---|---|
| sanitize-html, csurf (0) | 2026.04.14 |
| AWS와 GCP로 배포하기 - 서비스 운영을 위한 패키지(2) (0) | 2026.04.09 |
| AWS와 GCP로 배포하기 - 서비스 운영을 위한 패키지 (0) | 2026.04.06 |
| commander, inquirer 사용하기(3) (0) | 2026.04.03 |