GitHub Action执行失败:找不到@rollup/rollup-linux-x64-gnu模块求助
解决GitHub Actions中找不到@rollup/rollup-linux-x64-gnu模块的问题
可能的操作失误点
- 缓存未正确更新:如果流水线使用了
actions/cache缓存node_modules,但缓存键未关联package-lock.json的哈希值,旧缓存里可能缺失该可选依赖,导致重装操作无效。 - npm安装参数限制:流水线脚本中如果添加了
--no-optional、--omit=optional这类参数,会直接跳过rollup的平台特定可选依赖安装。 - package-lock.json未同步:本地删除了旧的
package-lock.json但未提交到仓库,流水线仍使用旧锁文件,导致依赖安装不完整。 - Node版本切换不彻底:更换Node版本后未清理残留的
node_modules,新旧依赖冲突导致可选依赖安装失败。 - 权限或日志缺失:流水线环境中npm安装时权限不足,导致可选依赖安装失败但未抛出明确错误,且未查看安装日志排查问题。
修复操作步骤
- 强制清理依赖再重装,在流水线脚本中添加:
rm -rf node_modules package-lock.json npm install - 调整缓存配置,确保缓存键基于
package-lock.json内容生成:- uses: actions/cache@v3 with: path: node_modules key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- - 检查并移除npm install命令中的
--no-optional、--omit=optional等限制参数。 - 若使用其他包管理器(如pnpm/yarn),同步清理对应锁文件(
pnpm-lock.yaml/yarn.lock)后重装。 - 添加日志排查步骤,在npm install后执行:
确认该依赖是否安装成功,若未安装,查看npm安装的verbose日志定位具体失败原因。npm list @rollup/rollup-linux-x64-gnu
内容的提问来源于stack exchange,提问作者Juan David Calderon
相关产品推荐
相关产品推荐

