Github Action打包client/mods文件夹时文件大小异常求助
问题诊断与修复方案
核心问题分析
client/mods文件夹在Github Action环境中仅为0.09MB、文件均为1KB左右的现象,大概率是Git LFS占位符文件未被替换为实际内容,或是Workflow缺失仓库代码拉取步骤导致文件异常。
修复步骤
1. 补充仓库代码拉取步骤(必做)
当前Workflow配置中缺少拉取仓库代码的关键步骤,Github Action runner默认不会自动克隆你的仓库,必须添加actions/checkout:
- name: 拉取仓库代码 uses: actions/checkout@v4
若client/mods下的大文件使用Git LFS存储,需启用LFS拉取:
- name: 拉取仓库代码(含LFS文件) uses: actions/checkout@v4 with: lfs: true
2. 验证Git LFS配置
检查仓库根目录的.gitattributes文件,确认client/mods的文件已被LFS追踪,规则示例:
client/mods/** filter=lfs diff=lfs merge=lfs -text
同时在本地执行以下命令,确认文件已通过LFS提交:
git lfs ls-files
若输出包含client/mods下的文件,说明LFS配置生效,必须在Action中启用LFS拉取。
3. 排查.gitignore规则
确认仓库的.gitignore未意外忽略client/mods下的文件,避免文件未被提交到仓库。
4. 验证Action环境文件状态
在main.ts的main函数开头添加目录遍历代码,打印文件实际大小,用于验证修复效果:
import { readdirSync, statSync } from "fs"; const main = async () => { const myFolder = "client/mods"; // 打印mods目录下所有文件的大小 readdirSync(myFolder).forEach(file => { const stats = statSync(`${myFolder}/${file}`); console.log(`${file}: ${stats.size} bytes`); }); // 原有代码... };
修正后的完整Workflow示例
name: Node.js CI on: push: branches: ["main"] pull_request: branches: ["main"] jobs: hash-client-deploy: runs-on: ubuntu-latest steps: - name: 拉取仓库代码(含LFS文件) uses: actions/checkout@v4 with: lfs: true - name: 设置Node.js环境 uses: actions/setup-node@v4 with: node-version: "22" - name: 安装依赖 run: npm install - name: 执行部署脚本 run: npm run start
内容的提问来源于stack exchange,提问作者Роман Данчевський
相关产品推荐
相关产品推荐

