>  기사  >  웹 프론트엔드  >  Node.js v .env 파일, 가져오기 모듈 및 권한 모델

Node.js v .env 파일, 가져오기 모듈 및 권한 모델

WBOY
WBOY원래의
2024-08-09 22:37:03338검색

Node.js v .env files, import modules, and Permission Model

Node.js v20.6은 2023년 10월 24일 LTS 버전의 일부인 놀라운 새 기능과 함께 출시되었습니다. 한 번 볼까요!

INI 구성 파일

dotenv 패키지에 작별 인사를 하세요. 이제 Node.js는 .env 파일에서 환경 변수를 로드할 수 있습니다.

node --env-file path/to/.env index.js

? Node.js가 INI 파일의 기본 이름을 선택하지 않았기 때문에 INI 파일 경로가 필요합니다.

? INI 파일이 없으면 노드 프로세스가 실패한 것이 아니라 환경 변수 없이 실행을 시작하세요.

NODE_OPTIONS 로드 중

다음 예와 같이 INI 구성 파일을 사용하여 Node.js의 특정 환경 변수(예: NODE_OPTIONS)를 로드할 수 있습니다.

NODE_NO_WARNINGS=1
NODE_OPTIONS="--experimental-permission --allow-fs-read=*"
TZ=Pacific/Honolulu
UV_THREADPOOL_SIZE=5

동일한 방법으로 사용할 수 있습니다.

node --env-file .env index.js

ES 모듈을 미리 로드하세요

--import 플래그를 사용하여 시작 시 ES 모듈을 미리 로드하면 애플리케이션 코드가 실행되기 전에, 심지어 진입점에서도 모듈이 로드됩니다.

node --import path/to/file.js index.js

이 플래그는 CommonJS 모듈을 로드하는 데 사용되는 잘 알려진 --require 플래그와 유사합니다.

? --require가 사전 로드된 모듈은 --import가 사전 로드된 모듈보다 먼저 실행됩니다.

권한 모델

권한 모델이라는 Node.js 프로세스 실행 중에 특정 리소스에 대한 액세스를 제한하는 새로운 메커니즘이 있습니다. API는 활성화되면 명시적으로 허용되지 않는 모든 리소스에 대한 액세스를 제한하는 --experimental-permission 플래그 뒤에 있습니다.

파일 시스템 권한

--allow-fs-read 플래그는 *를 사용하는 모든 FileSystemRead 작업 또는 절대 경로를 사용하는 특정 경로를 허용합니다.

node --experimental-permission --allow-fs-read=* index.js

특정 경로에만 액세스를 허용하려면 절대 경로를 사용해야 합니다

node --experimental-permission --allow-fs-read=/path/to/index.js --allow-fs-read=/path/to/directory index.js

? 초기화 모듈도 허용되어야 합니다. 그렇지 않으면 Node.js 프로세스 자체에서 index.js 파일을 로드할 수 없습니다.

? 를 사용할 수 있습니다. 작업 디렉토리에 대한 액세스를 허용하지만 이를 사용하여 파일 경로(예: ./index.js)를 지정할 수는 없습니다.

node --experimental-permission --allow-fs-read=. index.js

--allow-fs-write 플래그는 *를 사용하여 특정 경로 또는 전체 파일 시스템에 대한 액세스를 허용합니다.

node --experimental-permission --allow-fs-read=. --allow-fs-write=/tmp/ index.js

하위 프로세스

권한 모델이 활성화되면 프로세스는 기본적으로 하위 프로세스를 생성할 수 없습니다. 이 작업을 허용하려면 --allow-child-process를 사용해야 합니다. index.js에 다음 코드를 사용해 보겠습니다.

const childProcess = require('node:child_process');
childProcess.spawn('node', ['-e', 'require("fs").writeFileSync("./new-file.txt", "Hello, World!")']);

권한 모델이 활성화된 상태에서 이 코드 조각을 실행하려면 다음 명령을 사용하여 index.js를 실행해야 합니다.

node --experimental-permission --allow-fs-read . --allow-child-process index.js

? 하위 프로세스는 기본적으로 권한 모델을 상속하지 않으므로 new-file.txt가 성공적으로 생성됩니다.

추가 옵션

이 권한 모델에서 작업자 스레드를 생성하려면 --allow-worker 플래그를 확인하고 WASI 인스턴스 생성을 허용하려면 --allow-wasi를 선택하세요.

결론

애플리케이션에 대한 환경 변수를 로드하는 새로운 도구, 코드에 필요한 사전 로드 ES 모듈을 가져오는 방법, 시스템 보안을 강화하는 새로운 권한 모델이 있습니다.

Node.js 블로그를 계속 지켜봐 주시기 바랍니다. 이 팀은 모든 버전에 멋진 기능을 추가하고 있습니다! v22.6.0에서는 DevTools를 사용하여 초기 TypeScript 지원과 네트워크 검사를 제공합니다.

위 내용은 Node.js v .env 파일, 가져오기 모듈 및 권한 모델의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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