Skip to main content

开发环境部署


开发环境部署

开发环境仅适合需要进行大量深度修改或希望贡献代码的用户。
如果您没有过 TypeScript 项目的开发经验,非常不建议自建开发环境,请基于插件系统进行你所需要的功能添加与修改。
使用自动脚本安装也可以基于插件系统完成大部分的定制需求(参照左侧【使用 TypeScript 编写插件】章节)。
如果您需要编译 UI,请确认您的开发环境至少拥有 8GB 内存。

功能对比生产模式开发模式
快速起步
插件 API
底层代码修改
热重载
性能优化
兼容性
技术支持
部署难度简单复杂
升级简单复杂
技能要求
空闲内存要求2G8G
可切换至开发模式=
可切换至生产模式=需重写代码

Tips

使用开发环境默认您有良好的国际互联网连接。以下报错信息均为网络问题导致,您可以尝试换源/使用代理/切换网络环境。

  • Failed to connect
  • Connection reset
  • connect timeout

开发组不会为您解决任何网络问题。

在开发之前,请务必确认您使用了支持 TypeScript 的 IDE 环境,这可以极大降低开发难度。

安装依赖

  • 系统要求:Hydro开发环境目前仅支持 Linux 系统,如您使用 Windows 请使用 WSL2 。
  • MongoDB:Hydro 需要 MongoDBopen in new window 提供数据库服务。
  • NodeJS:请安装 NodeJS >=18 版本。(若使用 apt 请使用 nodesource 提供的源替代官方源) (推荐使用 nix ,可通过. <(curl https://hydro.ac/nix.sh) 快速安装)
  • yarn:安装 yarn 前请先完成 NodeJS 安装。 nix-env -iA nixpkgs.yarnnpm 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 即可。