AFFiNE项目Web端开发环境搭建指南
前言
AFFiNE是一款开源的协作知识管理工具,本文将详细介绍如何搭建AFFiNE Web端的开发环境。作为一款结合了现代Web技术和本地优先理念的产品,AFFiNE的开发环境搭建涉及Node.js和Rust两个技术栈,下面我们将分步骤讲解。
环境准备
Node.js安装
AFFiNE建议使用Node.js的LTS(长期支持)版本进行开发。目前主流的Node.js版本是20.x。
安装方式一:手动安装
直接从Node.js官网下载并安装LTS版本。
安装方式二:使用版本管理工具
推荐使用fnm(Fast Node Manager)来管理Node.js版本:
# 安装fnm
curl -fsSL https://fnm.vercel.app/install | bash
# 使用项目指定的Node.js版本
fnm use
Rust工具链安装
AFFiNE的部分核心模块使用Rust编写,需要安装Rust工具链:
# 使用官方脚本安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完成后,确保将cargo(Rust的包管理器)添加到PATH环境变量中。
Yarn包管理器配置
AFFiNE使用现代Yarn(4.x版本)作为包管理器。如果你的系统使用的是Yarn 1.x,需要先升级:
# 启用corepack(Node.js内置的包管理器管理器)
corepack enable
# 准备并激活稳定版Yarn
corepack prepare yarn@stable --activate
代码获取与初始化
克隆仓库
在Linux/MacOS系统上:
git clone https://github.com/toeverything/AFFiNE
在Windows系统上,由于AFFiNE代码库使用了符号链接,需要特殊配置:
- 启用Windows开发者模式
- 以管理员权限运行以下命令:
git config --global core.symlinks true
git clone https://github.com/toeverything/AFFiNE
安装依赖
# 进入项目目录
cd AFFiNE
# 安装项目依赖
yarn install
构建原生模块
AFFiNE使用了Rust编写的原生模块,需要通过NAPI.rs构建Node.js绑定:
# 构建前端原生模块
yarn affine @affine/native build
# 构建服务器端原生模块
yarn affine @affine/server-native build
首次构建可能需要较长时间,因为需要编译Rust代码和生成绑定。
启动开发服务器
完成上述步骤后,可以启动开发服务器:
yarn dev
这将启动一个本地开发服务器,通常运行在http://localhost:3000。
测试环境
AFFiNE提供了完善的测试套件,包括单元测试和端到端测试。
单元测试
使用vitest运行单元测试:
yarn test
端到端测试
AFFiNE使用Playwright进行端到端测试,首先确保安装了浏览器二进制文件:
npx playwright install
然后可以运行不同类型的端到端测试:
# 进入测试目录
cd tests/affine-local
# 运行端到端测试
yarn e2e
常见问题解决
-
MacOS构建问题:如果在MacOS上构建原生模块时遇到问题,可能需要使用系统自带的strip工具而非binutils。
-
Windows符号链接问题:确保已启用开发者模式并以管理员权限运行git命令。
-
Rust工具链问题:如果遇到Rust相关构建错误,尝试运行
rustup update
更新工具链。
结语
通过以上步骤,你应该已经成功搭建了AFFiNE Web端的开发环境。AFFiNE作为一款融合了现代Web技术和本地优先理念的产品,其开发环境配置也体现了这一特点。如果在搭建过程中遇到任何问题,可以参考项目文档或社区讨论寻求帮助。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考