AFFiNE项目Web端开发环境搭建指南

AFFiNE项目Web端开发环境搭建指南

AFFiNE AFFiNE 是一个开源、一体化的工作区和操作系统,适用于组装您的知识库等的所有构建块 - 维基、知识管理、演示和数字资产。它是 Notion 和 Miro 的更好替代品。 AFFiNE 项目地址: https://gitcode.com/gh_mirrors/af/AFFiNE

前言

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代码库使用了符号链接,需要特殊配置:

  1. 启用Windows开发者模式
  2. 以管理员权限运行以下命令:
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

常见问题解决

  1. MacOS构建问题:如果在MacOS上构建原生模块时遇到问题,可能需要使用系统自带的strip工具而非binutils。

  2. Windows符号链接问题:确保已启用开发者模式并以管理员权限运行git命令。

  3. Rust工具链问题:如果遇到Rust相关构建错误,尝试运行rustup update更新工具链。

结语

通过以上步骤,你应该已经成功搭建了AFFiNE Web端的开发环境。AFFiNE作为一款融合了现代Web技术和本地优先理念的产品,其开发环境配置也体现了这一特点。如果在搭建过程中遇到任何问题,可以参考项目文档或社区讨论寻求帮助。

AFFiNE AFFiNE 是一个开源、一体化的工作区和操作系统,适用于组装您的知识库等的所有构建块 - 维基、知识管理、演示和数字资产。它是 Notion 和 Miro 的更好替代品。 AFFiNE 项目地址: https://gitcode.com/gh_mirrors/af/AFFiNE

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蔡欣洁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值