You need to enable JavaScript to run this app. 在firebase init初始化的Node.js项目中无法将puppeteer安装至函数目录
优惠活动
大模型
产品
解决方案
定价
更多

在firebase init初始化的Node.js项目中无法将puppeteer安装至函数目录

问题根因

这个现象的核心诱因非常明确:

  • 执行安装命令时,你当前终端的工作路径在Firebase项目的根目录,而非云函数专属的functions子目录。firebase init生成的云函数项目,所有依赖配置(package.json)都存放在functions路径下,npm的安装逻辑只会根据当前执行命令的路径,查找就近的package.json来确定安装位置——如果在根目录执行命令,且根目录没有关联的云函数配置文件,npm会直接在当前路径生成独立的node_modules,完全不会主动关联子目录下的函数配置。
  • 附带的低级失误:你输入的安装命令有拼写错误,puppeteer的正确包名是puppeteer,而非你写的pupeteer,拼写错误时npm的安装逻辑会更不稳定,甚至可能在路径不对的情况下生成无意义的空依赖目录。
正确操作流程
  1. 先切换到云函数的工作目录,执行:cd functions
  2. 可执行ls确认当前目录下存在package.json(正常初始化完成的functions目录一定包含该文件)
  3. 执行拼写正确的安装命令:npm install puppeteer
  4. 安装完成后,对应函数目录下的node_modules就会正常生成,也符合Firebase云函数的部署规则——云函数只会识别上传functions目录下的依赖,根目录生成的node_modules完全是无效的冗余文件,不会被上传到服务端。
补充注意点

之前在根目录执行安装产生的冗余文件,包括根目录下的node_modules、自动生成的package.json、package-lock.json,建议全部手动删除,避免后续执行命令时出现路径混淆。
另外puppeteer默认安装会附带下载完整的Chromium浏览器,体积非常大,直接部署很容易触发Firebase云函数的部署包体积限制。建议安装时加参数跳过本地Chromium下载,改用Firebase云函数环境内置的Chromium可执行文件路径,减少部署包体积。

内容的提问来源于stack exchange,提问作者Prasath S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 11:45:07