菜单

安装与设置

相关源文件

本文档介绍了使用 Mermaid.js 代码库进行开发的安装和设置过程。它包括先决条件、仓库设置、开发环境配置以及为贡献者和维护者提供的基本工作流程指南。

有关如何在应用程序中使用 Mermaid 的信息,请参阅 mermaid.js.org 上的官方文档。有关整体架构的详细信息,请参阅架构。有关包结构的详细信息,请参阅包结构

先决条件

Mermaid 使用现代 JavaScript 开发技术栈,并有特定的工具要求

要求版本目的
Node.js最新 LTSJavaScript 运行时
pnpm10.4.1+monorepo 的包管理器
Git最新版版本控制

该仓库通过 packageManager 字段在 package.json7 中强制使用 pnpm。由于 monorepo 工作区配置,不支持 npm 或 yarn 等其他包管理器。

来源:package.json7

存储库结构

Mermaid 被组织为包含多个包和开发工具的 monorepo

该仓库使用 pnpm workspaces 管理跨包的依赖项。主要的 mermaid 包位于 packages/mermaid/ 中,包含核心库代码。

来源:package.json1-8 README.md1-6

安装步骤

1. 克隆仓库

2. 安装依赖项

此命令使用锁文件和工作区配置安装整个 monorepo 的所有依赖项。

3. 构建项目

构建过程运行 package.json18 中定义的两个主要步骤

  • pnpm build:esbuild - 编译 JavaScript 包
  • pnpm build:types - 生成 TypeScript 声明文件

来源:package.json17-22

开发环境

开发服务器

启动开发服务器以进行实时重载和测试

这将运行 .esbuild/server.ts 中定义的基于 esbuild 的开发服务器。也可以使用基于 Vite 的替代服务器。

开发脚本

命令目的配置
pnpm dev开发服务器.esbuild/server.ts
pnpm dev:vite备用开发服务器.vite/server.ts
pnpm build生产构建.esbuild/build.ts
pnpm test单元测试 + 代码检查Vitest + ESLint
pnpm e2e端到端测试Cypress

来源:package.json30-47

构建系统配置

构建系统使用 esbuild 进行快速编译,并支持多种输出格式

构建流程

构建配置

构建系统通过以下几个文件进行配置

来源:package.json18-22

测试设置

Mermaid 采用包含多个测试框架的全面测试策略

测试架构

测试命令

命令框架目的
pnpm testVitest + ESLint单元测试和代码检查
pnpm test:watchVitest开发模式下的监听模式
pnpm test:coverageVitest覆盖率报告
pnpm e2eCypress端到端测试
pnpm cypress:openCypress交互式测试运行器
pnpm lintESLint + Prettier代码质量检查

来源:package.json30-47

开发工作流

预提交钩子

该仓库使用 Husky 进行 Git 钩子,并使用 lint-staged 进行预提交验证

设置命令

克隆并安装依赖项后,运行设置命令

此命令在 package.json46 中定义,用于设置 Husky 钩子并运行初始构建,以确保一切正常运行。

来源:package.json46-47

配置文件

开发设置的关键配置文件

文件目的框架
package.json主包配置npm/pnpm
tsconfig.jsonTypeScript 配置TypeScript
vitest.config.ts单元测试配置Vitest
cypress.config.js端到端测试配置Cypress
eslint.config.js代码检查规则ESLint
.prettierrc代码格式化Prettier

开发环境现已准备就绪,可以为 Mermaid.js 做出贡献。有关详细的贡献指南,请参阅贡献指南

来源:package.json1-146 README.md1-475