# @expo/sudo-prompt 中文文档

规范地址：https://npmcn.com/package/%40expo/sudo-prompt/

版本：9\.3\.2
npm 元数据更新时间：2026-09-23T11:27:15.044Z
中文译文更新时间：2026-11-14T05:27:07.368Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40expo/sudo-prompt
原文对照：https://npmcn.com/package/%40expo/sudo-prompt/?lang=original
项目主页：https://github.com/expo/sudo-prompt
源码仓库：https://github.com/expo/sudo-prompt

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：45.2 kB，7 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2025-01-23T09:45:11.768Z
- 最新版本发布：2025-01-23T09:45:12.071Z
- 近 30 天下载量：55681588（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

使用 sudo 运行命令, 必要时用 OS 对话框提示用户

## 安装

```sh
npm install @expo/sudo-prompt
```

也可以使用：`pnpm add @expo/sudo-prompt`、`yarn add @expo/sudo-prompt`、`bun add @expo/sudo-prompt`

## README

# sudo 即时

> \[注\] 这是叉子在 [`expo/sude-prompt`](https://github.com/expo/sudo-prompt) 来解决已贬值的节点API. 上游:
> 
> -   [`@vscode/sudo-prompt`](https://github.com/bpasero/sudo-prompt)
> -   [`sudo-prompt`](https://github.com/jorangreef/sudo-prompt) (折旧)

使用非图形终端命令运行 `sudo`,必要时会用图形 OS 对话框提醒用户。 可用于背景 Node.js 应用程序或需要的本地 Electron apps `sudo`。 。 。 .

## 横线

`sudo-prompt` 提供本地 OS 对话框提示 **马科斯**, (中文(简体) ), **链接** 财务报告和审定财务报表 **窗口**。 。 。 .

![macOS](https://raw.githubusercontent.com/jorangreef/sudo-prompt/master/macos.png)

![Linux](https://raw.githubusercontent.com/jorangreef/sudo-prompt/master/linux.png)

![Windows](https://raw.githubusercontent.com/jorangreef/sudo-prompt/master/windows.png)

## 安装

`sudo-prompt` 不存在外部依赖性,也不要求任何本地约束.

```
npm install sudo-prompt
```

## 使用量

注意: 您的命令不应该从 `sudo` 前缀.

```javascript
var sudo = require('sudo-prompt');
var options = {
  name: 'Electron',
  icns: '/Applications/Electron.app/Contents/Resources/Electron.icns', // (optional)
};
sudo.exec('echo hello', options,
  function(error, stdout, stderr) {
    if (error) throw error;
    console.log('stdout: ' + stdout);
  }
);
```

`sudo-prompt` 将使用 `process.title` 作为 `options.name` 若为 `options.name` 未提供. `options.name` 必须是只有字母数字(支持空间),最多70个字符.

`sudo-prompt` 将在所有平台上保存当前工作目录。 环境变量可以明确使用 `options.env`。 。 。 .

**`sudo-prompt.exec()` 与 `child-process.exec()` (由于平台和权限的限制).**

## 行为

在macOS上, `sudo-prompt` 应该像 `sudo` 在壳中命令。 如果你的命令不工作 `sudo` 命令在 shell 中(可能因为它使用) `>` 重定向到一个受限制文件,然后它可能无法工作 `sudo-prompt`然而,仍然可以使用sudo-prompt来获得特权外壳, [欲了解更多信息,请参见此结出的问题](https://github.com/jorangreef/sudo-prompt/issues/1)。 。 。 .

在Linux上, `sudo-prompt` 将使用其中之一 `pkexec` 或者说 `kdesudo` 以显示密码提示并运行命令。 在可能的情况下, `sudo-prompt` 会尝试让这些模仿 `sudo`。根据使用哪一个二进制,并由于一些二进制的限制,您程序的名称或命令本身可以显示给您的用户. `sudo-prompt` 将不使用 `gksudo` 自此以来 `gksudo` 不支持同时提示。 通过 `options.icns` 当前不支持 `sudo-prompt` 在 Linux 上。 欢迎补丁添加基于 `polkit`。 。 。 .

在视窗上, `sudo-prompt` 将使用用户账户控制来提升命令。 通过 `options.name` 或者说 `options.icns` 当前不支持 `sudo-prompt` 在视窗上.

## 仅限非图形终端命令

就像你不应该使用 `sudo` 要启动任何图形化应用程序,你永远不要使用 `sudo-prompt` 以启动任何图形应用程序。 这样做会使您家目录中的文件成为root所拥有 . `sudo-prompt` 被明确设计为发射非图形终端命令. 有关更多信息, [读取此文章](http://www.psychocats.net/ubuntu/graphicalsudo)。 。 。 .

## 货币

关于用户选择拥有的系统 `tty-tickets` 启用(大多数系统),每次调用 `exec()` 将生成单独的密码提示。 何处 `tty-tickets` 已禁用,随后呼叫 `exec()` 即使用户的密码 `sudo` 时间戳文件仍然有效,因为边缘大小写 `sudo` 本身, [详情见此讨论](https://github.com/jorangreef/sudo-prompt/pull/76)。 。 。 .

你不应该依赖 `sudo-prompt` 执行您的电话顺序。 如果您需要执行电话命令, 您应该在申请中明确命令您的电话。 如果命令是短命的,你应该总是排队打给 `exec()` ,以确保您的用户没有过载密码提示.

## 取消时间戳

在 macOS 和 Linux 上,您可以取消用户的 `sudo` 通过运行您的终端中的以下命令来强制提示显示时间戳文件 :

```sh
$ sudo -k
```

## 常见问题

### @expo/sudo-prompt 是什么？

使用 sudo 运行命令, 必要时用 OS 对话框提示用户

### 如何安装 @expo/sudo-prompt？

在项目目录运行 npm install @expo/sudo-prompt，或使用 pnpm add / yarn add / bun add。

### @expo/sudo-prompt 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @expo/sudo-prompt 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @expo/sudo-prompt 可以商用吗？

@expo/sudo-prompt 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @expo/sudo-prompt 的下载量有多少？

根据 npm 官方下载统计，@expo/sudo-prompt 在 2026/10/14 – 2026/11/12 这 30 天内被下载 55,681,588 次，日均约 1,856,053 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @expo/sudo-prompt 还在维护吗？

最新版本 9\.3\.2 发布于 2025/01/23（1\.8 年前）；至今共发布 1 个版本，其中过去 12 个月发布了 0 个；首次发布于 2025/01/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

