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.x
DOTENV
플러그인을 설치 한 후 응용 프로그램을 시작하는 파일에 다음과 같이 가져옵니다.
require('dotenv').config({path: path.resolve(__dirname+'/.env')});
루트 디렉토리에 '.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
'IT story' 카테고리의 다른 글
대소 문자를 구분하지 않음 (0) | 2020.06.12 |
---|---|
git repo 및 작업 복사본에서 LF eol 강제 실행 (0) | 2020.06.12 |
github에서 gem의 특정“커밋”을 얻는 방법은 무엇입니까? (0) | 2020.06.12 |
HttpWebRequest (.NET)를 비동기 적으로 사용하는 방법은 무엇입니까? (0) | 2020.06.12 |
“잘못된 문자열 값”오류를 수정하는 방법? (0) | 2020.06.12 |