Alist、OpenList 编译打包与Git、Nodejs、pnpm、Go、Gcc环境搭建教程

本教程将一步步引导你完成从开发环境搭建、依赖安装到源码下载、编译打包的全过程,适用于 Windows 系统下的 Alist 和 OpenList 项目。

我这个教程是目前发现最不容易出错,最简单的保姆教程了,录制这个就因为自己搭建的时候找不到好的教程,感觉大家也需要才录制的


一、开发环境搭建

1. 安装 Git

用于下载项目源码和编译打包(一定要安装到没有空格的英文目录,不然偶尔会导致一些难以发现的问题!)

 

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)

 

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

. 添加中文语言包


 

 前端依赖安装与打包

安装依赖:

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

(0)

相关推荐