- 安装 node.js LTS 版本(>= 16)
- 安装 yarn 包管理工具
- 安装 git lfs(部分二进制文件在拉取和更新时需要)
通过 git 命令行工具拉取最新的代码之后,通过 yarn
命令在根目录安装项目依赖
# 安装所有 JS 依赖及子模块依赖
yarn
# 全局安装 expo 命令行工具
npm install -g expo-cli
在根目录执行以下命令,从而开发不同的业务代码
yarn web
: 开发网页模式,会启动静态服务器在本地 3000 端口yarn ios
: 通过 USB 连接 iphone 设备进行开发调试yarn android
: 调试安卓yarn desktop
: 开发桌面端模式
在 packages/app/android/lib-keys-secret/src/main/cpp/keys.c
中配置相关 key,也可以使用默认选项。可能一些 API 会有限制。
- 前往加密仓库获取
debug.keystore
文件,放入packages/app/android/keystores
目录中,没有该目录请自行创建。 - 前往加密仓库获取
keys.secret
文件,放入packages/app/android
目录中。
仓库使用 monorepo 模式进行组织,在保证不同端的代码集中且互相不影响的大前提下,又尽可能的在打包和编译过程中让代码复用
packages/components
存放 UI 组件packages/kit
存放可复用页面级别 UI 内容packages/app
APP 代码packages/desktop
桌面端 electron 代码packages/web
网页端代码packages/extension
插件端代码
packages/
目录下的每一个子目录即一个独立的项目,对应在 monorepo 名称即为对应目录中 package.json 的 name
字段的值。
当需要给某一个子目录安装依赖时,只需要使用 yarn workspace @onekeyhq/web add axios
。通过 yarn workspace @onekeyhq/web
这样的前缀,最终可以在根目录把 axios 模块安装到 web 这个子项目当中。
部分依赖有原生部分,所以执行安装完 JS 依赖后需要进入 packages/app/ios
目录下执行 pod install
。
- app 无法启动
通过根目录下的 yarn native
中 --reset-cache
命令清除打包工具缓存。同时配合根目录下命令 yarn clean
清除所有依赖及生成文件后重新执行 yarn
安装依赖。