IT story

process.env.NODE_ENV가 정의되지 않았습니다

hot-time 2020. 6. 12. 19:21
반응형

process.env.NODE_ENV가 정의되지 않았습니다


NodeJs에 대한 자습서를 따르려고합니다. 나는 내가 놓친 것으로 생각하지 않지만 process.env.NODE_ENV내가 얻는 유일한 가치를 부를 때마다 정의되지 않습니다. 내 연구에 따르면 기본값은 '개발'이어야합니다. 이 값은 어떻게 동적으로 설정되며 초기에 어디에 설정됩니까?


process.env는 환경에 대한 참조이므로 변수를 설정해야합니다.

Windows에서 환경 변수 를 설정하려면 다음 을 수행하십시오 .

SET NODE_ENV=development

OS X 또는 Linux :

export NODE_ENV=development

* nix (Linux, OS X 등)를 사용하는 사람들에게는 두 번째 내보내기 명령을 통해이를 수행 할 이유가 없으므로 호출 명령의 일부로이를 연결할 수 있습니다.

NODE_ENV=development node server.js

더 쉬워요? :)


에서 package.json:

"scripts": {
  "start": "set NODE_ENV=dev && node app.js"
 }

에서 app.js:

console.log(process.env.NODE_ENV) // dev
console.log(process.env.NODE_ENV === 'dev') // false
console.log(process.env.NODE_ENV.length) // 4 (including a space at the end) 

따라서 이것은 더 나을 수 있습니다.

"start": "set NODE_ENV=dev&& node app.js"

또는

console.log(process.env.NODE_ENV.trim() === 'dev') // true

Windows에서 노드로 작업 할 때이 문제가 발생했습니다.

이러한 변수를 설정하기 위해 앱을 실행하려는 사람에게 요구하지 않고 애플리케이션 내에서 폴백을 제공했습니다.

var environment = process.env.NODE_ENV || 'development';

프로덕션 환경에서는 일반적인 방법 (SET / export)에 따라 정의합니다.


UBUNTU에서는 다음을 사용하십시오.

$ 내보내기 NODE_ENV = 테스트


Express 버전 을 사용하고 플러그인을 사용하는 사람들을위한 macOS 에서는 다음 과 같이 사용해야합니다.4.x.xDOTENV

  1. 플러그인을 설치 한 후 응용 프로그램을 시작하는 파일에 다음과 같이 가져옵니다. require('dotenv').config({path: path.resolve(__dirname+'/.env')});

  2. 루트 디렉토리에 '.env'파일을 만들고 varaiable을 다음과 같이 추가하십시오.

    NODE_ENV=development 또는 NODE_ENV = development


cross-env npm 패키지를 사용할 수 있습니다 . 환경 변수 트리밍을 처리하고 다른 플랫폼에서 작동하는지 확인합니다.

프로젝트 루트에서 다음을 실행하십시오.

npm install cross-env

그런 다음 package.json의 스크립트에서 다음을 추가하십시오.

"start": "cross-env NODE_ENV=dev node your-app-name.js"

그런 다음 터미널의 프로젝트 루트에서 다음을 실행하여 앱을 시작하십시오.

npm start

그런 다음 환경 변수를 앱에서로 사용할 process.env.NODE_ENV수 있으므로 다음과 같은 작업을 수행 할 수 있습니다.

if (process.env.NODE_ENV === 'dev') {
  // Your dev-only logic goes here
}

package.json에서 우리는 아래와 같이 구성해야합니다 (Linux 및 Mac OS에서 작동)

중요한 것은 아래의 빌드 명령 다음에 "export NODE_ENV = production"입니다.

  "scripts": {
     "start": "export NODE_ENV=production && npm run build && npm run start-server",
     "dev": "export NODE_ENV=dev && npm run build && npm run start-server",
  } 
  • 개발 환경의 경우 "npm run dev"명령을 실행해야합니다

  • 프로덕션 환경의 경우 "npm run start"명령을 실행해야합니다


코드로 설정할 수도 있습니다 (예 :

process.env.NODE_ENV = 'test';

참고 URL : https://stackoverflow.com/questions/11104028/process-env-node-env-is-undefined

반응형