Azure Core Process client library for JavaScript - version 1.0.0

@azure/core-process 주변 셸 파싱을 피하는 프로세스 런칭 원시Node.js 제공합니다. Windows, macOS, 또는 Linux에서 외부 실행 파일을 호출해야 하는 Azure SDK 패키지와 도구를 위한 것입니다.

시작하기

패키지 설치

npm install @azure/core-process

사전 요구 사항

주요 개념

명령어와 인자는 항상 별도로 제공됩니다. 이 패키지는 명령어 문자열 API를 제공하지 않으며, 호출자가 셸을 활성화할 수 없습니다.

import { execFile } from "@azure/core-process";

const { stdout } = await execFile("git", ["rev-parse", "--show-toplevel"]);
console.log(stdout);

Windows에서는 네이티브 .exe 와 .com 파일 파일을 선호합니다. 배치 파일은 기본적으로 비활성화되어 있는데, 임의의 인수가 모든 .cmd.bat 또는 래퍼를 통해 안전하게 전송될 수 없기 때문입니다. 배치 심을 기대하는 호출자는 제한된 배치 경로에 선택할 수 있습니다:

import { execFile } from "@azure/core-process";

const { stdout } = await execFile("npm", ["--version"], {
  allowWindowsBatchFiles: true,
});
console.log(stdout);

제한된 배치 경로는 명령 연산자, 변수 확장, 줄줄, 그리고 시작 전에 cmd.exe 안전함을 입증할 수 없는 기타 값을 거부합니다. 애플리케이션이 해당 값을 전달해야 할 경우, 네이티브 실행 파일이나 인터프리터 진입점을 직접 호출해야 합니다.

보안 경계

이 패키지는 명령줄 데이터가 환경 운영 체제 셸에서 해석되는 것을 방지합니다. 이 문서는 실행 PATH 파일이 신뢰할 만하다는 것을 입증하지 못하고, 의도적으로 인터프리터에 전달된 코드를 정화하지 않으며, 명령어별 옵션 주입을 방지하지 않습니다.

명령줄 인수에 비밀을 넣지 마세요. 프로세스 인수는 다른 로컬 프로세스와 운영 시스템 진단에 보이게 될 수 있습니다.

Troubleshooting

안전하지 않은 Windows 배치 인자는 자식 프로세스가 생성되기 전에 실패 ProcessError 합니다. 인수를 변경할 수 없을 때는 네이티브 실행 파일을 선호합니다.

Contributing

기여 가이드를 참고하세요.