本地运行 Running Locally

本指南介绍了如何在本地安装 Directus 的开发版本,以便您可以使用平台的源代码。

最低要求
您将需要 最新版本的 Nodebuild 一个开发Directus 版本。

您可以使用 JavaScript 工具管理器 volta 自动安装当前节点和 npm版本。

您还需要安装包管理器 pnpm

您可以使用安装 pnpm 以下命令:npm install -g pnpm

1. 分叉 Directus 存储库

转到 repository 并将其 fork 到您的 GitHub 帐户。 叉子是你的副本 Directus 存储库。 分叉存储库允许您自由试验更改而不会影响 原始项目。

2. 从您的存储库中克隆

bash
git clone git@github.com:YOUR-USERNAME/directus.git

3. 新建一个分支

bash
git checkout -b YOUR-BRANCH-NAME

4. 安装依赖并构建项目

bash
pnpm install
pnpm -r build

5. Create a .env file

使用在线 config help 中的 vars 在 api 文件夹下创建一个 .env 文件

6. 初始化数据库

对于这一步,您需要已经启动并运行 SQL 数据库,除非您使用 SQLite 驱动程序,它将为您创建数据库(文件)。

要开始初始化,请运行以下命令:

bash
# 在“api”上下文中运行命令(以确保在正确的目录中创建数据库文件)
pnpm --dir api cli bootstrap

这将为 Directus 设置所需的表并确保所有迁移都已运行。

7. 启动开发服务器

您可以使用以下命令运行开发中的所有包:

bash
pnpm -r dev

Race Conditions
当运行多个或所有包时,有时 ts-node 可能无法正常启动 API,因为其他包发生更改而导致竞争条件。 您可以重新运行该命令以重新启动 API,也可以选择选择要处理的包,如下所述。

如果您希望选择要处理的包,您应该为该包运行 dev 脚本。 您可以在相关的 package.json 中查看它们的名称和脚本列表。

仅运行 API 的示例:

bash
pnpm --filter directus dev

如果你想一次处理多个包,你应该为每个包创建一个新的终端实例。 同时运行 API 和 App 的示例:

Terminal 1 [Api] Terminal 2 [App]
bash
pnpm --filter directus dev
bash
pnpm --filter @directus/app dev

要处理文档(公共网站版本),您应该克隆 directus/docs 存储库并运行以下命令:

bash
pnpm install
pnpm dev

过程中遇到错误,请确保您的节点版本满足最低要求

8. 进行修复/更改

此时您已准备好开始使用 Directus! 然而,在深入研究之前,值得阅读 Contributing 的介绍。

Debugging
查看我们的 Wii 以获取有关调试应用程序和 API 的 指南

9. 运行测试

测试通过 GitHub Actions 自动运行。 但是,您可能希望在本地运行测试,尤其是在编写测试时。

安装 Docker 并确保服务正在运行。

bash
# 确保您在最新的代码库上进行测试
pnpm -r build

# 清理以防你之前运行过测试
docker compose -f tests/docker-compose.yml down -v

# 启动必要的容器
docker compose -f tests/docker-compose.yml up -d --wait

# 运行测试
pnpm test:e2e