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,也不允許呼叫者啟用 shell。

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

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

在 Windows 上,.exe原生和.com檔案是優先的。 批次檔預設被禁用,因為任意參數無法安全地透過每個 .cmd 或 .bat 包裝器傳輸。 預期有批次 shim 的呼叫者可以選擇加入受限批次路徑:

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

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

受限的批次路徑會拒絕指令運算子、變數展開、換行及其他無法在開始前 cmd.exe 證明安全的值。 如果應用程式需要傳遞這些值,必須直接呼叫原生執行檔或直譯器的入口點。

安全邊界

此套件防止命令列資料被環境作業系統殼層解讀。 它無法證明 on 上的 PATH 可執行檔可信度、未清除有意傳遞給直譯器的程式碼,或防止指令特定選項注入。

請勿在命令列參數中放置秘密。 程序參數可能對其他本地程序及作業系統診斷系統可見。

故障排除

在子程序建立前,Windows 的不安全批次參數會因 失敗ProcessError。 當參數無法更改時,偏好原生執行檔。

Contributing

請參閱 貢獻指南。