你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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 可执行文件可信,也不能净化有意传递给解释器的代码,或防止命令特定选项注入。

不要在命令行参数中放置秘密。 进程参数可能对其他本地进程和操作系统诊断可见。

Troubleshooting

在子进程创建之前,Windows 的不安全批处理参数会ProcessError失败。 当参数无法更改时,优先使用原生可执行文件。

Contributing

请参阅 贡献指南