Realm JS 项目构建指南:从环境配置到测试调试全流程

Realm JS 项目构建指南:从环境配置到测试调试全流程

realm-js realm/realm-js: 是一个用于在 JavaScript 应用程序中存储和同步数据的移动和 Web 数据库库,它支持多种数据类型,包括数值、字符串、日期等。适合用于构建高性能、易于使用的移动和 Web 应用程序,特别是对于需要实时数据同步的场景。特点是实时同步、易于使用、支持多种数据类型。 realm-js 项目地址: https://gitcode.com/gh_mirrors/re/realm-js

前言

Realm JS 是一个流行的移动端数据库解决方案,为 JavaScript 生态提供了高性能的本地数据存储能力。本文将全面介绍如何从零开始构建 Realm JS 项目,涵盖环境配置、代码构建、测试运行等关键环节。

环境准备

基础工具链

构建 Realm JS 需要以下核心工具:

  1. Xcode:最新版本,需包含命令行工具
  2. Node.js:推荐使用 LTS 版本(16或更高)
  3. CMake:3.21.4 或更高版本
  4. ClangFormat:用于 C++ 代码格式化
  5. OpenJDK 8:Android 开发必备
  6. Android SDK 23+NDK 23
  7. Docker:用于测试环境
  8. 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 特定配置

  1. 安装 Java 和构建工具:
brew install ninja
brew install --cask temurin
  1. 配置环境变量(添加到 ~/.zshrc):
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools
  1. 安装 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

代码获取与初始化

  1. 克隆仓库:
git clone https://github.com/realm/realm-js.git
cd realm-js
  1. 初始化子模块:
git submodule update --init --recursive
  1. 安装依赖:
npm install
  1. 优化 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

测试与质量保障

代码质量检查

  1. JavaScript/TypeScript 检查:
npm run lint
  1. C++ 代码格式化检查:
npm run lint:cpp

测试运行

测试脚本位于 integration-tests 目录,具体参见该目录下的说明文档。

调试技巧

C++ 调试

  1. 使用 VS Code 的 clangd 扩展可获得更好的 C++ 代码智能提示
  2. 确保使用工作区版本的 TypeScript
  3. 利用 compile_commands.json 文件增强编辑器功能

React Native 调试

  1. 使用 Chrome 开发者工具调试 JavaScript 代码
  2. 对于原生代码问题,可使用 Android Studio 或 Xcode 的调试器

实用技巧

  1. 清理构建文件
npm run clean
  1. 文档生成
npm run docs --workspace realm
  1. 实际应用测试:建议使用示例应用测试修改,确保兼容性

常见问题处理

Android JNI 头文件更新

当修改了 RealmReactModule.java 文件后,需要重新生成 JNI 头文件:

  1. 定位必要的类路径
  2. 构建完整的 classpath 字符串
  3. 执行 javac 命令生成新头文件
  4. 清理生成的 .class 文件

Windows 特殊配置

  1. 需要启用符号链接克隆仓库
  2. 必须配置 node-gyp 环境
  3. 需要手动安装 OpenSSL 库

结语

本文详细介绍了 Realm JS 项目的完整构建流程,从环境配置到实际构建,再到测试调试。掌握这些知识后,开发者可以更高效地参与 Realm JS 项目的开发和贡献。建议初次接触的开发者按照步骤逐步操作,遇到问题时参考对应平台的特定说明。

realm-js realm/realm-js: 是一个用于在 JavaScript 应用程序中存储和同步数据的移动和 Web 数据库库,它支持多种数据类型,包括数值、字符串、日期等。适合用于构建高性能、易于使用的移动和 Web 应用程序,特别是对于需要实时数据同步的场景。特点是实时同步、易于使用、支持多种数据类型。 realm-js 项目地址: https://gitcode.com/gh_mirrors/re/realm-js

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卓蔷蓓Mark

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

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

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

打赏作者

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

抵扣说明:

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

余额充值