Node.js v20.6은 2023년 10월 24일 LTS 버전의 일부인 놀라운 새 기능과 함께 출시되었습니다. 한 번 볼까요!
dotenv 패키지에 작별 인사를 하세요. 이제 Node.js는 .env 파일에서 환경 변수를 로드할 수 있습니다.
node --env-file path/to/.env index.js
? Node.js가 INI 파일의 기본 이름을 선택하지 않았기 때문에 INI 파일 경로가 필요합니다.
? INI 파일이 없으면 노드 프로세스가 실패한 것이 아니라 환경 변수 없이 실행을 시작하세요.
다음 예와 같이 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
--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 중국어 웹사이트의 기타 관련 기사를 참조하세요!