升级Node.js后Vite本地正常但GitHub Pages CI构建失败求助
解决GitHub Pages CI中Node.js升级后Vite构建失败的问题
问题概述
升级Node.js至18.20.2后,本地Vite构建正常,但GitHub Pages CI构建报错找不到@rollup/rollup-linux-x64-gnu模块,提示需删除package-lock.json和node_modules后重新执行npm i,但不清楚如何在CI流水线中操作。
解决方案
1. 修改GitHub Actions工作流,添加依赖清理步骤
找到你的GitHub Pages CI工作流文件(通常位于.github/workflows/目录下,比如gh-pages.yml),在执行npm install或npm ci之前,添加清理旧依赖和lock文件的命令:
如果Vite项目在根目录:
- name: Clean and reinstall dependencies run: | rm -rf node_modules package-lock.json npm install
如果Vite项目在client子目录(匹配你的报错路径):
- name: Clean and reinstall dependencies in client directory run: | cd client rm -rf node_modules package-lock.json npm install
2. 确保CI环境使用正确的Node.js版本
在工作流中明确指定Node.js版本为18.20.2,避免版本不一致:
- name: Set up Node.js 18.20.2 uses: actions/setup-node@v4 with: node-version: '18.20.2'
3. 可选:临时禁用依赖缓存(若上述步骤无效)
如果CI启用了npm依赖缓存,可能残留旧版本依赖文件导致清理不彻底,可以暂时禁用缓存:
- name: Set up Node.js 18.20.2 uses: actions/setup-node@v4 with: node-version: '18.20.2' # 注释或删除缓存配置行 # cache: 'npm'
原因说明
该报错源于npm处理可选依赖的已知问题,升级Node.js后,CI环境中可能残留了与新版本不兼容的node_modules或package-lock.json文件。本地环境因重新生成依赖文件正常,但CI流水线可能依赖缓存或旧lock文件,导致Rollup的Linux平台原生模块无法正确安装。强制清理后重新安装,可确保依赖与当前Node.js版本完全兼容。
内容的提问来源于stack exchange,提问作者user3146945
相关产品推荐
相关产品推荐

