开发环境部署
开发环境部署
开发环境仅适合需要进行大量深度修改或希望贡献代码的用户。
如果您没有过 TypeScript 项目的开发经验,非常不建议自建开发环境,请基于插件系统进行你所需要的功能添加与修改。
使用自动脚本安装也可以基于插件系统完成大部分的定制需求(参照左侧【使用 TypeScript 编写插件】章节)。
如果您需要编译 UI,请确认您的开发环境至少拥有 8GB 内存。
功能对比 | 生产模式 | 开发模式 |
---|---|---|
快速起步 | ✅ | ❌ |
插件 API | ✅ | ✅ |
底层代码修改 | ❌ | ✅ |
热重载 | ❌ | ✅ |
性能优化 | ✅ | ❌ |
兼容性 | ✅ | ❌ |
技术支持 | ✅ | ❌ |
部署难度 | 简单 | 复杂 |
升级 | 简单 | 复杂 |
技能要求 | 低 | 高 |
空闲内存要求 | 2G | 8G |
可切换至开发模式 | 是 | = |
可切换至生产模式 | = | 需重写代码 |
Tips
使用开发环境默认您有良好的国际互联网连接。以下报错信息均为网络问题导致,您可以尝试换源/使用代理/切换网络环境。
- Failed to connect
- Connection reset
- connect timeout
开发组不会为您解决任何网络问题。
在开发之前,请务必确认您使用了支持 TypeScript 的 IDE 环境,这可以极大降低开发难度。
安装依赖
- 系统要求:Hydro开发环境目前仅支持 Linux 系统,如您使用 Windows 请使用 WSL2 。
- MongoDB:Hydro 需要 MongoDB 提供数据库服务。
- NodeJS:请安装 NodeJS >=18 版本。(若使用 apt 请使用 nodesource 提供的源替代官方源) (推荐使用 nix ,可通过
. <(curl https://hydro.ac/nix.sh)
快速安装) - yarn:安装 yarn 前请先完成 NodeJS 安装。
nix-env -iA nixpkgs.yarn
或npm install -g yarn
- 若需要使用 hydrojudge 请参照 hydrojudge 插件说明部分完成沙箱的安装配置。
安装 Hydro
git clone https://github.com/hydro-dev/Hydro.git /root/Hydro --recursive # 下载至 /root/Hydro 文件夹
cd /root/Hydro # 进入工作目录
yarn # 安装依赖包
yarn build:ui:production # 编译前端
插件
开发环境部署完成后默认不启用任何插件。
所有官方插件均随源码仓库下载到安装文件夹的 packages
子文件夹下,可以通过下面的命令启用官方插件(以启用 @hydrooj/ui-default
为例):
yarn hydrooj addon add @hydrooj/ui-default
对于非官方插件,下载后通过下面的命令启用即可(以启用位置在 /root/addon
下的插件为例):
yarn hydrooj addon add /root/addon
启动 Hydro
支持如下启动参数:
--port=2333
指定启动端口--debug
启用开发模式--watch
启用热重载(实验性)
使用 yarn debug --port=2333 --watch
启动 Hydro,并在后台运行 yarn build:ui:dev
,可以对前端源码进行实时转译,在反复修改时可节省编译时间。启动完成后,您可以在 8000 端口访问到 Hydro 实例,且前端的任何更改将即时生效。(后端热重载可能存在 bug,部分模块修改后可能仍需重启才能生效)
请注意:此功能仅在启用了 @hydrooj/ui-default
插件的情况下才会生效。
首次启动会要求您填写数据库连接信息。请根据您数据库的安装填写(若无密码则留空)
请按照下文说明创建管理员账户即可正常使用。
更新
需要更新的时候进入对应仓库文件夹执行 git pull
,然后重新 yarn && yarn build:ui:production
即可。