>웹 프론트엔드 >JS 튜토리얼 >환경 변수: JS 개발에 대한 매우 짧은 소개

환경 변수: JS 개발에 대한 매우 짧은 소개

WBOY
WBOY원래의
2024-09-06 11:01:301108검색

Environment Variables: a very short intro for JS development

이 글은 환경 변수에 대한 간단한 조사를 위해 작성되었으므로 간결하게 작성했습니다

기본 사항

  • 터미널은 그야말로 터미널 에뮬레이터인 앱입니다.
  • 우리는 과 상호 작용하는 터미널을 사용합니다.
  • 쉘은 node와 같은 다른 앱을 통해 Javascript 프로그램과 같은 프로세스를 생성할 수 있습니다.
    • 예: 쉘 -> 노드 -> index.js
  • 터미널을 열면 새 세션이 셸에 생성됩니다
  • 이 세션에는 연결될 수 있는 변수가 있습니다(예: echo $USER는 현재 사용자의 이름을 인쇄합니다)

마디

노드에서 환경 변수는 전역 process.env를 통해 액세스됩니다

console.log(process.env.USER); // username
  • 애플리케이션은 일반적으로 환경 변수를 통해 비밀 또는 구성 관련 데이터에 액세스합니다.
    • 예: process.env.DB_CONNECTION
    • 우리는 비밀을 비밀로 유지하고 모든 사용자가 동일한 구성 요구 사항을 갖고 있는 것은 아니기 때문에 이는 유용합니다. 이를 통해 논리와 구성을 더 효과적으로 분리할 수 있습니다.

변수를 로드하는 방법

이러한 변수를 프로그램에서 사용할 수 있도록 하는 몇 가지 방법이 있습니다.

(1) 명령줄을 통해 사용할 수 있도록 설정:

아주 간단합니다. 명령줄에서 변수를 사용하여 명령을 호출하면 됩니다.

DB_CONNECTION="postgresql://username:password@host:port/database_name" node index.js

(2) .env 파일에 저장

.env 파일은 등호로 구분된 KEYSVALUES로 구성됩니다.

DB_CONNECTION="postgresql://username:password@host:port/database_name"

이러한 파일은 일반적이며 애플리케이션에서 사용할 수 있도록 하는 몇 가지 방법이 있습니다.

디렌브

파일에서 변수를 로드하여 셸에서 사용할 수 있도록 하는 direnv와 같은 도구를 사용하세요. 이는 일반적으로 전역적으로 설치됩니다.

기본적으로 direnv는 .envrc 파일을 찾지만 .env도 사용할 수 있습니다. 구성 방법은 여기를 참조하세요.

도텐브

파일에서 변수를 로드하고 process.env에서 사용할 수 있도록 하는 dotenv와 같은 도구를 사용하세요.

direnv 대 dotenv

각 방법마다 장단점이 있습니다.

direnv를 사용하면 언어에 구애받지 않고 종속성이 하나 줄어든다는 의미이지만, direnv를 사용하지 않는 경우 애플리케이션 소비자는 환경 변수를 로드하는 자신만의 방법이 필요하다는 의미이기도 합니다.

dotenv를 사용하면 애플리케이션 소비자가 걱정 없이 .env 파일을 사용할 수 있지만 셸에서 기본적으로 수행할 수 있는 작업을 수행하기 위해 패키지가 추가됩니다.

노드 플래그

최근 노드에는 .env 파일을 직접 사용할 수 있는 지원(v20.6.0)이 포함되었습니다.

깃발을 사용해야 합니다

node --env-file=.env index.js

dotenv와 마찬가지로 process.env에서 .env의 콘텐츠를 사용할 수 있습니다.

요약

  • 환경 변수는 셸 고유의 기술입니다
  • 직접, direnv, dotenv, node 등 여러 가지 로드 방법이 있습니다
  • direnv는 변수를 쉘에 로드하지만 dotenv와 node는 process.env를 통해서만 해당 변수를 애플리케이션에서 사용할 수 있도록 합니다.
  • 노드를 사용하는 경우 새로운 --env-file 플래그를 사용하도록 선택해야 합니다

위 내용은 환경 변수: JS 개발에 대한 매우 짧은 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.