Realm JS 项目构建指南:从环境配置到测试调试全流程
前言
Realm JS 是一个流行的移动端数据库解决方案,为 JavaScript 生态提供了高性能的本地数据存储能力。本文将全面介绍如何从零开始构建 Realm JS 项目,涵盖环境配置、代码构建、测试运行等关键环节。
环境准备
基础工具链
构建 Realm JS 需要以下核心工具:
- Xcode:最新版本,需包含命令行工具
- Node.js:推荐使用 LTS 版本(16或更高)
- CMake:3.21.4 或更高版本
- ClangFormat:用于 C++ 代码格式化
- OpenJDK 8:Android 开发必备
- Android SDK 23+ 和 NDK 23
- Docker:用于测试环境
- Ninja:构建系统加速工具
推荐配置
建议在 shell 配置中添加以下环境变量,禁用分析数据收集:
export REALM_DISABLE_ANALYTICS=1
MacOS 环境配置详解
通用配置
# 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装基础工具
brew install nvm cmake
iOS 特定配置
brew install cmake
Android 特定配置
- 安装 Java 和构建工具:
brew install ninja
brew install --cask temurin
- 配置环境变量(添加到 ~/.zshrc):
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
- 安装 Android 组件:
sdkmanager --install "platforms;android-31"
sdkmanager --install "ndk;23.1.7779620"
sdkmanager --install "cmake;3.18.1"
性能优化选项
ccache 可显著提升编译速度:
brew install ccache
export PATH=$(brew --prefix ccache)/libexec:$PATH
代码获取与初始化
- 克隆仓库:
git clone https://github.com/realm/realm-js.git
cd realm-js
- 初始化子模块:
git submodule update --init --recursive
- 安装依赖:
npm install
- 优化 git blame:
git config blame.ignoreRevsFile .gitignore-revs
构建流程详解
核心 SDK 构建
npm run build:ts --workspace realm
iOS 平台构建
npm run prebuild-apple --workspace realm
npm run bindgen:jsi --workspace realm
构建结果位于 packages/realm/prebuilds/apple
Android 平台构建
npm run prebuild-android --workspace realm
npm run bindgen:jsi --workspace realm
构建结果位于 packages/realm/prebuilds/android
Node.js 平台构建
npm run build:node --workspace realm
构建结果位于 packages/realm/prebuilds/node/realm.node
如需生成预构建包:
npm run prebuild-node --workspace realm
测试与质量保障
代码质量检查
- JavaScript/TypeScript 检查:
npm run lint
- C++ 代码格式化检查:
npm run lint:cpp
测试运行
测试脚本位于 integration-tests
目录,具体参见该目录下的说明文档。
调试技巧
C++ 调试
- 使用 VS Code 的 clangd 扩展可获得更好的 C++ 代码智能提示
- 确保使用工作区版本的 TypeScript
- 利用
compile_commands.json
文件增强编辑器功能
React Native 调试
- 使用 Chrome 开发者工具调试 JavaScript 代码
- 对于原生代码问题,可使用 Android Studio 或 Xcode 的调试器
实用技巧
- 清理构建文件:
npm run clean
- 文档生成:
npm run docs --workspace realm
- 实际应用测试:建议使用示例应用测试修改,确保兼容性
常见问题处理
Android JNI 头文件更新
当修改了 RealmReactModule.java
文件后,需要重新生成 JNI 头文件:
- 定位必要的类路径
- 构建完整的 classpath 字符串
- 执行 javac 命令生成新头文件
- 清理生成的 .class 文件
Windows 特殊配置
- 需要启用符号链接克隆仓库
- 必须配置 node-gyp 环境
- 需要手动安装 OpenSSL 库
结语
本文详细介绍了 Realm JS 项目的完整构建流程,从环境配置到实际构建,再到测试调试。掌握这些知识后,开发者可以更高效地参与 Realm JS 项目的开发和贡献。建议初次接触的开发者按照步骤逐步操作,遇到问题时参考对应平台的特定说明。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考