Cloudreve
搜索文档…
构建
Cloudreve 项目主要由两部分组成:后端主仓库 cloudreve/Cloudreve,以及前端仓库 cloudreve/frontend。编译 Cloudreve 后端前,需要先构建assets 目录下的前端子模块,并使用statik嵌入到后端仓库。

环境准备

  1. 1.
    参照 Getting Started - The Go Programming Language 安装并配置Go语言开发环境;
  2. 2.
    参考 下载 | Node.js 安装 Node.js;
  3. 3.
    参考 安装 | Yarn 安装Yarn;
  4. 4.
    执行 go get github.com/rakyll/statik 安装statik 命令行工具;

开始构建

克隆代码

1
# 克隆仓库
2
git clone --recurse-submodules https://github.com/cloudreve/Cloudreve.git
3
4
# 签出您要编译的版本
5
git checkout 3.x.x
Copied!

构建静态资源

1
# 进入前端子模块
2
cd assets
3
# 安装依赖
4
yarn install
5
# 开始构建
6
yarn run build
Copied!
完成后,所构建的静态资源文件位于 assets/build 目录下。
你可以将此目录改名为statics 目录,放置在 Cloudreve 主程序同级目录下并重启 Cloudreve,Cloudreve 将会使用此目录下的静态资源文件,而非内置的。

嵌入静态资源

1
# 回到项目主目录
2
cd ../
3
4
# 安装 statik, 用于嵌入静态资源
5
go get github.com/rakyll/statik
6
7
# 开始嵌入
8
statik -src=assets/build/ -include=*.html,*.js,*.json,*.css,*.png,*.svg,*.ico,*.ttf -f
Copied!
如果在嵌入时找不到statik 命令,请尝试执行:
export PATH=$PATH:$(go env GOPATH)/bin

编译项目

1
# 获得当前版本号、Commit
2
export COMMIT_SHA=$(git rev-parse --short HEAD)
3
export VERSION=$(git describe --tags)
4
5
# 开始编译
6
go build -a -o cloudreve -ldflags " -X 'github.com/cloudreve/Cloudreve/v3/pkg/conf.BackendVersion=$VERSION' -X 'github.com/cloudreve/Cloudreve/v3/pkg/conf.LastCommit=$COMMIT_SHA'"
Copied!
首次编译时,Go 会下载相关依赖库,如果您的网络环境不佳,可能会导致这一步速度过慢或者失败。你可以使用 GOPROXY.IO 加快模块下载速度。
编译完成后,会在项目根目录下生成最终的可执行文件cloudreve

构建助手

你可以使用项目根目录下的构建脚本build.sh 快速完成构建、打包等操作,使用方法如下:
1
./build.sh [-a] [-c] [-b] [-r]
2
a - 构建静态资源
3
c - 编译二进制文件
4
b - 构建前端 + 编译二进制文件
5
r - 交叉编译,构建用于release的版本
Copied!

交叉编译

交叉编译前,你需要启用CGO ,正确安装目标平台的 GCC 工具链,并将CC 环境变量设定为对应平台的GCC 编译工具。
比如,在 Linux/AMD64 宿主平台上交叉编译 Windows/AMD64:
1
export GOOS=windows
2
export GOARCH=amd64
3
export CC=x86_64-w64-mingw32-gcc
4
export CGO_ENABLED=1
5
6
go build
Copied!
最近更新 8mo ago