本教程将一步步引导你完成从开发环境搭建、依赖安装到源码下载、编译打包的全过程,适用于 Windows 系统下的 Alist 和 OpenList 项目。
我这个教程是目前发现最不容易出错,最简单的保姆教程了,录制这个就因为自己搭建的时候找不到好的教程,感觉大家也需要才录制的
一、开发环境搭建
1. 安装 Git
用于下载项目源码和编译打包(一定要安装到没有空格的英文目录,不然偶尔会导致一些难以发现的问题!)
- 下载地址:Git for Windows/x64 Setup
- https://git-scm.com/downloads/win
- 选好目录狂点下一步就行了
2.安装 wget 工具
- 下载地址:wget for Windows
- https://eternallybored.org/misc/wget/
- 将
wget.exe
拷贝到:C:\PerfLogs\Git\cmd
- 添加该文件存放的目录到环境变量
- 因为我的
Git
安装在了C:\PerfLogs\Git\ suo
- 所以本身就有这个目录的环境变量,就不需要额外添加环境变量了
- 因为我的
- 验证是否成功:
打开命令行输入wget --version
3. 安装 GCC 编译环境
建议使用 WinLibs 提供的 GCC 15.1.0(64 位、POSIX 线程版本):
- 下载地址:winlibs.com
- 解压路径建议:
D:\mingw64
- 添加环境变量:
D:\mingw64\bin
4.安装 Go(Golang)
- 下载地址:Go 1.24.4
- https://go.dev/doc/install
- 解压路径建议:
D:\Go
- 配置环境变量:
添加D:\Go\bin
到系统环境变量Path
中
5. 使用 NVM 安装 Node.js 与 NPM
使用 NVM 安装管理 Node.js 和 npm
NVM真是一个好东西,用这个安装和管理Node.js 和 npm真太方便了
- 下载 NVM(推荐 v1.1.12):https://github.com/coreybutler/nvm-windows/releases/tag/1.1.12
- 安装完成后修改配置文件:默认路径:
C:\Users\Administrator\AppData\Roaming\nvm\settings.txt
- 添加加以下两行内容:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
- 查看可用版本(非必须):
nvm list available
- 使用 NVM 进行安装 Node.js :
- 安装版本:
nvm install 22.16.0
- 切换使用该版本:
nvm use 22.16.0
- 查看是否切换成功:
nvm ls
- 安装版本:
安装 pnpm
npm install -g pnpm
- 验证是否安装成功:
npm ls -g
二、源码下载与打包流程
. 下载源码
前端:
- Alist下载地址:
git clone --recurse-submodules https://github.com/AlistGo/alist-web.git
- openlist下载地址:
git clone --recurse-submodules https://github.com/OpenListTeam/OpenList-Frontend.git
后端:
- Alist下载地址:
git clone https://github.com/AlistGo/alist.git
- openlist下载地址:
git clone https://github.com/OpenListTeam/OpenList.git
. 添加中文语言包
- 下载语言包:https://crowdin.com/backend/download/project/alist/zh-CN.zip
- 解压至前端代码根目录
- 进入前端项目目录,并运行:
node ./scripts/i18n.mjs
- 成功后将看到多了一个:
alist-web/src/lang/zh-CN/entry.ts
文件
前端依赖安装与打包
安装依赖:
pnpm install
正式打包构建:
pnpm build
. 后端打包前设置编译环境
使用国内 Go 模块代理:
go env -w GOPROXY=https://goproxy.cn,direct
设置 Linux 编译参数(即交叉编译):
export GOOS=linux
export GOARCH=amd64
. 后端打包命令(来自官方)
进入后端源码根目录,运行以下命令:
appName="alist"
builtAt="$(date +'%F %T %z')"
goVersion=$(go version | sed 's/go version //')
gitAuthor=$(git show -s --format='format:%aN <%ae>' HEAD)
gitCommit=$(git log --pretty=format:"%h" -1)
version=$(git describe --long --tags --dirty --always)
webVersion=$(wget -qO- -t1 -T2 "https://api.github.com/repos/alist-org/alist-web/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
ldflags="\
-w -s \
-X 'github.com/alist-org/alist/v3/internal/conf.BuiltAt=$builtAt' \
-X 'github.com/alist-org/alist/v3/internal/conf.GoVersion=$goVersion' \
-X 'github.com/alist-org/alist/v3/internal/conf.GitAuthor=$gitAuthor' \
-X 'github.com/alist-org/alist/v3/internal/conf.GitCommit=$gitCommit' \
-X 'github.com/alist-org/alist/v3/internal/conf.Version=$version' \
-X 'github.com/alist-org/alist/v3/internal/conf.WebVersion=$webVersion' \
"
go build -ldflags="$ldflags" .
扩展知识
如果前端需要对接自己后端地址,可编辑前端目录下的 .env.development
文件
然后终端输入命令,可本地运行测试:
pnpm dev
本站部分内容来自网络,版权归原作者所有。本文链接:https://www.weixinss.com/1662.html