You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Action部署Firebase Functions为何需先手动安装最新版npm

问题原因

你的报错本质是npm锁文件版本和CI环境的npm版本不兼容:

  • lockfileVersion@2 是npm v7及以上版本生成的锁文件格式
  • 你配置的Node.js 14版本在GitHub Actions的Ubuntu环境中,默认预装的是npm v6,仅支持lockfileVersion@1格式的锁文件
  • 其他脚本不需要额外配置的原因有两种可能:要么其他脚本用了Node 16及以上版本(默认自带npm v7+,原生支持v2锁文件),要么对应项目的package-lock.json是用npm v6生成的v1版本。

解决方案

你可以按需选择以下任意一种方案,替换现有额外安装npm的步骤:

方案1(最推荐):升级CI环境的Node.js版本

Node 14已经停止官方维护,直接升级到长期支持的Node 16/18版本即可,这些版本默认自带的npm版本原生支持v2锁文件,不需要额外安装最新npm。
修改actions/setup-node步骤的配置即可:

- name: Use Node.js 16
  uses: actions/setup-node@v2
  with:
    node-version: '16'

修改后可直接删除原来的install npm步骤,部署流程可正常运行。注意提前确认你的Firebase Functions运行环境支持对应的Node.js版本即可。

方案2:降级本地锁文件版本

如果你必须保留Node 14的配置,可以将本地开发环境的npm降级到v6版本,然后重新执行npm install生成lockfileVersion@1的锁文件,提交到仓库后即可适配CI环境的默认npm版本,不需要额外安装最新npm。

方案3:优化现有npm安装步骤

如果你不想修改Node版本也不想修改锁文件,现有额外安装npm的步骤也可以正常使用,仅建议去掉working-directory配置,全局安装npm更合理:

- name: install latest npm
  run: npm i npm@latest -g

内容的提问来源于stack exchange,提问作者Tyler C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:06:02