# @delmaredigital/payload-page-tree 中文文档

规范地址：https://npmcn.com/package/%40delmaredigital/payload-page-tree/

版本：0\.4\.1
npm 元数据更新时间：2026-11-09T16:03:13.296Z
中文译文更新时间：2026-11-13T03:57:52.086Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：337 kB，50 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^18\.20\.2 \|\| \>=20\.9\.0
- 运行依赖：2 个
- peer 依赖：next \>=14\.0\.0 \|\| \>=15\.0\.0 \|\| \>=16\.0\.0，react \>=18\.0\.0 \|\| \>=19\.0\.0，payload \>=3\.0\.0，@payloadcms/ui \>=3\.0\.0，@payloadcms/next \>=3\.0\.0
- 首次发布：2026-01-10T17:07:26.414Z
- 最新版本发布：2026-11-09T16:03:12.623Z
- 近 30 天下载量：2355（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：24（近 12 个月 24 个）

## 中文简介

带有可视树管理的基于文件夹的分级 URL shalls 的有效载荷 CMS 插件

## 安装

```sh
npm install @delmaredigital/payload-page-tree
```

也可以使用：`pnpm add @delmaredigital/payload-page-tree`、`yarn add @delmaredigital/payload-page-tree`、`bun add @delmaredigital/payload-page-tree`

## README

# @delmaredigital/活页-树

一个将内置文件夹功能扩展至自动生成分级 URL satters 的有效载荷 CMS 插件 。 文件夹定义了 URL 结构,页面选择一个文件夹,而 satters 是自动生成的.

[![Starter Template - Use This](https://img.shields.io/badge/Starter_Template-Use_This-blue?style=for-the-badge&logo=github&logoColor=white)](https://github.com/delmaredigital/dd-starter)

[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fdelmaredigital%2Fdd-starter&project-name=my-payload-site&build-command=pnpm%20run%20ci&env=PAYLOAD_SECRET,BETTER_AUTH_SECRET&stores=%5B%7B%22type%22%3A%22integration%22%2C%22protocol%22%3A%22storage%22%2C%22productSlug%22%3A%22neon%22%2C%22integrationSlug%22%3A%22neon%22%7D%2C%7B%22type%22%3A%22blob%22%7D%5D)

[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/delmaredigital/payload-page-tree)

**联合国** [插件.delmaredigital.com/docs/页面树](https://plugins.delmaredigital.com/docs/page-tree) • 妇女 [概览](https://plugins.delmaredigital.com/page-tree)

## 安装

```bash
pnpm add @delmaredigital/payload-page-tree
```

## 快速启动

### 1\. 添加插件

```typescript
// src/payload.config.ts
import { buildConfig } from 'payload'
import { pageTreePlugin } from '@delmaredigital/payload-page-tree'
import { Pages } from './collections/Pages'

export default buildConfig({
  collections: [Pages],
  plugins: [
    pageTreePlugin(),  // Auto-detects 'pages' and 'posts' if they exist
  ],
})
```

### 2\. 定义您的收藏

您的收藏 **必须** 有个 `slug` 字段。 插件使它从文件夹路径+页面段中只读和自动生成值.

```typescript
// src/collections/Pages/index.ts
import type { CollectionConfig } from 'payload'

export const Pages: CollectionConfig = {
  slug: 'pages',
  fields: [
    { name: 'title', type: 'text', required: true },
    {
      name: 'slug',
      type: 'text',
      required: true,
      unique: true,
      index: true,
    },
  ],
}
```

> **重要内容:** 不使用有效载荷 `slugField()` 帮手 使用一个纯文本字段——插件通过自己的钩子来管理 sults.

### 3\. 前端路线

```typescript
// app/[...slug]/page.tsx
export default async function Page({ params }: { params: { slug: string[] } }) {
  const fullSlug = params.slug.join('/')

  const { docs } = await payload.find({
    collection: 'pages',
    where: { slug: { equals: fullSlug } },
    limit: 1,
  })

  // ...
}
```

就这样! 该插件添加 `folder`, (中文(简体) ), `pageSegment`, (中文(简体) ), `sortOrder`,以及 `slugHistory` 字段,然后在 `/admin/page-tree`。 。 。 .

* * *

## 访问控制

树观在下面叫十四个终点 `/api/page-tree/*`。两层决定谁可以使用它们:

1.  **端口门** - 那个 `access` 选项在每一个终点之前运行。 默认情况下,它需要一个经认证的有效载荷用户(`401` 没有用户, `403` 他们否认真主.
2.  **收集访问规则** - 阅读和撰写用户运行的文档 `overrideAccess: false` 作为请求用户,所以 `access` 执行关于页面和文件夹收藏的规则。 URL维护(slug exceptry,相撞检查,级联目录)读取可信赖的访问权限,但只有用户能读取的文件夹下方. 见 [出入控制](https://plugins.delmaredigital.com/docs/page-tree/access-control) 关于细节.

```typescript
pageTreePlugin({
  // Only admins may use the tree endpoints
  access: ({ req }) => req.user?.role === 'admin',
})
```

> **从0.3.16或更早升级:** 这些版本注册了没有认证的终点,并绕过收藏访问规则。 升级和审查 `access` 在您的页面和文件夹收藏上的规则 – 它们现在管理树 。 见 [变化](https://npmcn.com/package/%40delmaredigital/payload-page-tree/CHANGELOG.md#0317---2026-09-09)。 。 。 .

## 许可证

麻省理工学院

## 常见问题

### @delmaredigital/payload-page-tree 是什么？

带有可视树管理的基于文件夹的分级 URL shalls 的有效载荷 CMS 插件

### 如何安装 @delmaredigital/payload-page-tree？

在项目目录运行 npm install @delmaredigital/payload-page-tree，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：next（\>=14\.0\.0 \|\| \>=15\.0\.0 \|\| \>=16\.0\.0）、react（\>=18\.0\.0 \|\| \>=19\.0\.0）、payload（\>=3\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @delmaredigital/payload-page-tree 支持 TypeScript 吗？

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

### @delmaredigital/payload-page-tree 支持 ESM 还是 CommonJS？

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

### @delmaredigital/payload-page-tree 需要什么版本的 Node\.js？

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

### @delmaredigital/payload-page-tree 可以商用吗？

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

### @delmaredigital/payload-page-tree 的下载量有多少？

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

### @delmaredigital/payload-page-tree 还在维护吗？

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

