# @existdb/xst 中文文档

规范地址：https://npmcn.com/package/%40existdb/xst/

版本：4\.1\.2
npm 元数据更新时间：2026-03-04T21:51:05.143Z
中文译文更新时间：2026-11-14T08:03:46.798Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40existdb/xst
原文对照：https://npmcn.com/package/%40existdb/xst/?lang=original
项目主页：https://github.com/eXist-db/xst#readme
源码仓库：https://github.com/eXist-db/xst

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

- 包体积（解压后）：155 kB，41 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：^20\.19\.0 \|\| \>=22\.11\.0
- 运行依赖：11 个
- 首次发布：2022-12-14T14:27:14.514Z
- 最新版本发布：2026-03-04T21:51:04.856Z
- 近 30 天下载量：2112（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：34（近 12 个月 4 个）

## 中文简介

命令行工具与已存在- db 实例互动

## 安装

```sh
npm install @existdb/xst
```

也可以使用：`pnpm add @existdb/xst`、`yarn add @existdb/xst`、`bun add @existdb/xst`

## README

```
  ╲ ╱  ╓───  ──┰──
   ╳   ╰───╮   │  
  ╱ ╲  ▂▁▁▁│   ┇  

  A modern command line interface for exist-db
```

[![version](https://img.shields.io/npm/v/@existdb/xst.svg?style=flat)](https://www.npmjs.com/package/@existdb/xst) [![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-blue?logo=conventionalcommits&logoColor=white)](https://conventionalcommits.org/) [![javascript style guide](https://img.shields.io/badge/code_style-standard-blue.svg)](https://standardjs.com/)

[![Semantic Release](https://github.com/eXist-db/xst/actions/workflows/semantic-release.yml/badge.svg)](https://github.com/eXist-db/xst/actions/workflows/semantic-release.yml) [![CodeQL](https://github.com/eXist-db/xst/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/eXist-db/xst/actions/workflows/codeql-analysis.yml)

建于顶上 [@ 有性别歧视/无性别歧视](https://www.npmjs.com/package/@existdb/node-exist)。 。 。 .

## 安装

先决条件: [节点JS](https://nodejs.org/) 18版或以后版本

`npm install --global @existdb/xst`

这样可以执行文件 `xst` 在你的路径.

### 更新

更新最新版本 `xst`

```bash
npm update --global @existdb/xst
```

## 使用量

```bash
xst <command>
```

您可以验证您的安装与

```bash
xst --version
```

输出命令和选项

```bash
xst --help
```

您可以使用 -- help with any command 获取关于如何使用的额外信息.

```bash
xst <command> --help
```

**可用命令**

| 命令 | 说明 | 别名 |
| --- | --- | --- |
| `info` | 收集系统信息 |  |
| `get [options] <source> <target>` | 下载收藏或资源 | `download` `fetch` |
| `upload [options] <source> <target>` | 上传文件和目录 . | `up` |
| `remove [options] <paths..>` | 删除收藏或资源 | `rm` `delete` `del` |
| `edit [options] <resource>` | 在本地编辑器中编辑资源 |  |
| `execute [<query>] [options]` | 执行查询字符串或文件 | `run` `exec` |
| `list [options] <collection>` | 列表收藏内容 | `ls` |
| `package list [options]` | 列出已安装的软件包 | `pkg ls` |
| `package install <command>` | 从各种来源安装 XAR 包 | `pkg i <command>` |
| `package uninstall [options] <packages..>` | 删除 XAR 包( 检查依赖性) | `pkg uninstall`。 。 。 . |

### 实例

#### 列表收藏

```bash
xst list /db
```

#### 列出应用程序收藏的全部内容

这将输出所有收藏和资源的扩展和有色信息 `/db/apps` 在一棵树上.

```bash
xst list /db/apps --long --tree --color
```

**注:** 连接用户无法访问的资源和收藏将用 -- long 省略.

#### 查找最大的 JavaScript 资源

```bash
xst list /db/apps --long --recursive --color --glob '*.js' --sizesort
```

#### 下载资源

这将将仪表盘的控制器下载到当前的工作目录.

```bash
xst get /db/apps/dashboard/controller.xql .
```

#### 下载收藏

如果目标是一个收藏, 将会在 指定目标及其全部内容将被下载.

```bash
xst get /db/apps/dashboard .
```

上述下载收藏的内容 `/db/apps/dashboard` 输入 `dashboard` 当前工作目录中的文件夹.

#### 设置资源权限

这说明您如何通过任意运行扩展当前功能 剧本. 您需要以数据库管理员的身份来运行 查询.

```bash
xst execute 'sm:chmod(xs:anyURI($file), $permissions)' \
  -b '{"file": "/db/apps/dashboard/controller.xql", "permissions": "rwxrwxr-x"}'
```

将权限重置回原状态.

```bash
xst execute 'sm:chmod(xs:anyURI($file), $permissions)' \
  -b '{"file": "/db/apps/dashboard/controller.xql", "permissions": "rwxr-xr-x"}'
```

#### 执行主模块

如果你一次又一次地用同样的查询 或者是复杂的查询 您可以保存到文件并使用 `--file` 参数.

```bash
xst execute --file my-query.xq
```

#### 安装 XAR 包

注:启动命令的用户必须是DBA组的成员.

软件包安装将尝试解决并安装repo.xml中声明的所有依赖性. 如果找不到依赖性或无法安装,安装将失败 . 默认登记处(AKA public-repo)是 `https://exist-db.org/exist/apps/public-repo` 却被打败 `--registry` 选项.

##### 从登记处

```bash
xst package install from-registry demo-apps
```

##### 一个或多个本地文件

```bash
xst package install local-files path/to/*.xar
```

#### 列出所有已安装的应用程序包及其依赖性

```bash
xst package list --applications --dependencies
```

#### 解开软件包

注:启动命令的用户必须是DBA组的成员.

```bash
xst package uninstall demo-apps
```

## 配置

默认 `xst` 连接到 https://localhost:8443 作为用户来宾.

**注:** 您想要连接的实例必须运行, XML- RPC 必须启用 .

### 带有配置文件

`xst` 现在支持配置文件 。 全球 `--config` 选项需要可读路径 配置文件 。 目前承认三种不同的格式.

**示例**

```bash
xst ls /db/apps --config spec/fixtures/.xstrc
```

#### .xstrc (英语)

JSON 格式化文件, 您可以设置连接选项以及其他首选设置, 如 `color` 或者说 `timesort`来看看 [实例.xstrc](https://npmcn.com/package/%40existdb/xst/spec/fixtures/.xstrc)。 。 。 .

**注:** 布尔选项“ 安全” 已贬值 。 在加密和未加密之间切换 连接使用"protocol"代替. “安全”将继续为XMLRPC和REST工作,直到 2号版本.

#### 存在性b.json

这些都存在于使用从eXistdb的Visual Studio代码插件中的同步功能的项目中.

#### dotenv 文件 :

```bash
EXISTDB_USER=admin
EXISTDB_PASS=my super secret p455w0rd!
EXISTDB_SERVER=http://localhost:8080
```

**注:** 如果当前工作目录包含 .env 文件 除非设置了 -- config 参数,否则将自动加载.

### 有环境变量

通过设置环境来覆盖任何默认连接参数 前缀的变量 `EXISTDB`。在下表中,请参见 参数及其默认值和描述.

| 变量名称 | 默认 | 说明 |
| --- | --- | --- |
| `EXISTDB_USER` | `guest` | 用户用于连接数据库并使用 |
| `EXISTDB_PASS` | `guest` | 在数据库中认证用户的密码 |
| `EXISTDB_SERVER` | `https://localhost:8443` | 要连接的数据库实例的 URL( 只允许 http 和 https 协议) |

**示例**

```
EXISTDB_SERVER=http://127.0.0.1:8080 xst ls /db/apps
```

## 发展

如果您想要测试或开发此软件包, 请进一步遵循以下步骤

1.  复制此寄存器
    
    ```bash
    git clone https://github.com/line-o/xst
    ```
    
2.  更改到工作目录
    
    ```bash
    cd xst
    ```
    
3.  安装软件包依赖性
    
    ```bash
    npm install
    ```
    
4.  将此软件包链接到您的全局软件包目录
    
    ```bash
    npm link
    ```
    

**说明:** 有了这个 `--version` 将总是输出 `0.0.0-development`。 。 。 .

## 测试

一旦您遵循了上述步骤, 并链接到此仓库的本地克隆 运行测试套件

```bash
npm test
```

**注:** 您需要运行一个存在db实例( 通常是本地开发实例 ) .

### 覆盖范围

如果您想要测试代码覆盖信息运行

```bash
npm run coverage
```

**注:** 您需要运行一个存在db实例( 通常是本地开发实例 ) .

### 无 REST

额外测试 `spec/norest/**/*.js` 保证一切正常运转 用于说明REST API已禁用的情况。 你可以运行这些

```bash
npm run test:norest
```

**注:** 记住,他们只会成功对抗一个实际已禁用REST的实例. 这个 [测试 - 无 REST](https://npmcn.com/package/%40existdb/xst/.github/workflows/test-no-rest.yml) GitHub Action利用了这一点.

## 捐款

我们高兴地接受社区的贡献. 贡献可能只是读取中的一种类型或者更好的文档, 以及错误修正和新特性. 对于错误修正和特性,最好打开一个问题,这样 我们可以先讨论你的方法 这样你的公关就会 尽快合并.

在承诺实施该项目时,每个承诺信息必须符合 改为 [常规承诺](https://www.conventionalcommits.org/en/v1.0.0/) 作为版本和 释放是自动使用 [语义释放](https://semantic-release.gitbook.io/semantic-release/)。 。 。 .

### 承诺

如果您在开发时想要检查您的承诺, 您可以添加一个预承诺重写 [嘘](https://typicode.github.io/husky/#/)。 。 。 .

启动Husky项目

```bash
npx husky
```

这会增加钩子

-   **承诺前** `npm run lint` 保证任何联署材料的格式正确,并阻止你 在遇到诸如未使用变量之类的问题时实施.
-   **承诺- msg** 将执行承诺,以确保承诺信息跟随常规承诺 信件格式

这些功能不是默认启动的,因为它阻止你从事在建工程. 但记住,当你打开公关时 两张支票都会运行 所以可能更容易 要从头检查此内容, 以后无需编辑历史 .

## 常见问题

### @existdb/xst 是什么？

命令行工具与已存在- db 实例互动

### 如何安装 @existdb/xst？

在项目目录运行 npm install @existdb/xst，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 xst，可以用 npx xst 直接运行。

### @existdb/xst 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/existdb\_\_xst 是否存在。

### @existdb/xst 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @existdb/xst 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^20\.19\.0 \|\| \>=22\.11\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @existdb/xst 可以商用吗？

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

### @existdb/xst 的下载量有多少？

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

### @existdb/xst 还在维护吗？

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

