部署Firebase Function遇报错:找不到firebase-fuctions模块请求协助
看起来你遇到的这个模块找不到的问题,大概率是拼写、依赖安装路径或者版本兼容的问题,我给你整理几个排查和解决的步骤,你可以一步步试:
先检查拼写!
注意错误提示里的firebase-fuctions——这里少了一个字母n,正确的包名是firebase-functions。先去你的函数代码(比如index.js)里看看导入语句是不是写错了,比如是不是写成了:const functions = require('firebase-fuctions'); // 这里拼写错误!如果是,改成正确的拼写:
const functions = require('firebase-functions');确保在正确的目录执行npm install
你必须进入项目下的functions子目录再执行npm install,而不是在项目根目录操作。比如:cd your-project-folder/functions npm install很多人会不小心在根目录跑install,导致依赖没装到正确的位置。
清理缓存并重新安装依赖
旧版本的npm(你用的是5.5.1)有时候会有缓存问题,导致依赖安装不完整。可以试试:- 删除
functions目录下的node_modules文件夹和package-lock.json文件 - 清理npm缓存:
npm cache clean --force - 重新安装依赖:
npm install
- 删除
检查Firebase CLI版本兼容性
你当前用的Firebase CLI是3.17.6,这个版本非常旧了,和Node 8.9.3的兼容性可能存在问题。建议升级Firebase CLI到适配Node 8的最新版本(Node 8已经停止官方支持,所以不要升太新的版本,比如可以试试安装v9.x系列的CLI):npm install -g firebase-tools@9.23.3这个版本的CLI是最后支持Node 8的版本之一。
指定兼容的firebase-functions版本
Node 8.9.3只支持firebase-functions3.x及以下的版本,你可以在functions目录下安装指定版本的包:npm install firebase-functions@3.16.0同时确保你的
package.json里的dependencies有正确的条目,比如:"dependencies": { "firebase-functions": "^3.16.0", "firebase-admin": "^9.12.0" // 也要确保admin包版本兼容 }
如果以上步骤都试过还是不行,可以再检查一下你的functions目录下的node_modules里有没有firebase-functions文件夹,如果没有的话,说明依赖确实没装进去,可能需要检查npm的网络连接或者换个源试试。
内容的提问来源于stack exchange,提问作者kunal gharate

