Farm项目开发环境搭建与贡献指南
项目概述
Farm是一个基于Rust和JavaScript构建的现代化前端构建工具,采用双语言架构设计。该项目结合了Rust的高性能与JavaScript的灵活性,旨在为开发者提供高效的构建体验。
开发环境准备
基础依赖安装
开发Farm项目需要准备以下基础环境:
- Rust工具链:通过rustup安装最新稳定版Rust
- Node.js环境:需要16.x或更高版本
- 包管理工具:推荐使用pnpm 8.x版本
开发工具配置
建议使用VSCode作为主要开发IDE,并安装以下必备插件:
- rust-analyzer:提供Rust语言支持
- biome:Farm项目使用的代码格式化工具
特殊依赖处理
项目需要protoc编译器来构建sass-embedded模块。在Mac或Linux系统上,执行pnpm bootstrap
时会自动安装protoc。
项目初始化
在项目根目录执行以下命令完成初始化:
pnpm bootstrap
该命令会完成以下操作:
- 安装所有JavaScript依赖
- 构建核心Rust包
- 执行一系列初始化操作
开发流程
项目结构说明
Farm采用双语言架构:
-
JavaScript部分:
- 位于packages目录
- 包含核心开发服务器、文件监听器和编译器封装
- 提供CLI工具和运行时环境
-
Rust部分:
- 位于crates和rust-plugins目录
- 包含编译上下文、插件驱动等核心功能
- 实现编译过程和HMR更新
开发模式启动
根据开发内容选择不同的启动命令:
# 开发Node端代码
pnpm start
# 开发Rust端代码
pnpm start:rs
修改Rust代码后,需要在packages/core目录下执行npm run build:rs
重新构建二进制文件。
测试验证
Rust测试
在项目根目录或crates目录下执行:
cargo test
JavaScript测试
在项目根目录下执行:
pnpm test
测试基于vitest框架实现。
插件开发
Farm提供了便捷的插件开发脚手架,可以快速创建JavaScript或Rust插件:
- 首先安装CLI工具:
cd packages/cli
npm link
# 或全局安装
npm install -g @farmfe/cli
- 创建插件:
farm plugin create <插件名称>
代码提交规范
提交代码时请注意:
- 保持代码风格与周边代码一致
- 从main分支创建特性分支进行开发
- 确保所有测试用例通过
- 版本更新尽量使用patch版本
问题反馈
在开发过程中遇到问题时:
- 详细描述问题现象
- 提供复现步骤和环境信息
- 区分是功能请求还是缺陷报告
通过遵循这些指南,开发者可以高效地参与Farm项目的开发和维护工作。项目的双语言架构设计既保证了核心编译性能,又提供了灵活的插件扩展能力,为现代前端工程化提供了新的解决方案。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考