Firebase Functions部署失败求助:依赖缺失与区域不匹配
问题
执行firebase deploy --only functions部署Firebase Functions时遇到两个问题:
- 构建阶段提示npm lock文件缺失大量依赖包(如is-arrayish@0.2.1、ansi-styles@5.2.0等),已尝试删除functions文件夹、Firebase配置文件后重新执行
firebase init,以及运行npm ci,但问题仍未解决; - 项目指定部署区域为eur3,但系统尝试将
createUserDocument函数部署至us-central1。
错误日志详情
$ firebase deploy --only functions === Deploying to 'reddit-clone-729f9'... i deploying functions Running command: npm --prefix "$RESOURCE_DIR" run build > build > tsc + functions: Finished running predeploy script. i functions: preparing codebase default for deployment i functions: ensuring required API cloudfunctions.googleapis.com is enabled... i functions: ensuring required API cloudbuild.googleapis.com is enabled... i artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled... + functions: required API cloudfunctions.googleapis.com is enabled + functions: required API cloudbuild.googleapis.com is enabled + artifactregistry: required API artifactregistry.googleapis.com is enabled i functions: preparing functions directory for uploading... i functions: packaged C:\Users\carlo\Desktop\proyectos\reddit-clone\functions (65.02 KB) for uploading + functions: functions folder uploaded successfully i functions: creating Node.js 16 function createUserDocument(us-central1)... Build failed: ...file npm ERR! Missing: is-arrayish@0.2.1 from lock file npm ERR! Missing: ansi-styles@5.2.0 from lock file npm ERR! Missing: react-is@18.2.0 from lock file npm ERR! Missing: kleur@3.0.3 from lock file npm ERR! Missing: sisteransi@1.0.5 from lock file npm ERR! Missing: is-core-module@2.11.0 from lock file npm ERR! Missing: path-parse@1.0.7 from lock file npm ERR! Missing: supports-preserve-symlinks-flag@1.0.0 from lock file npm ERR! Missing: shebang-regex@3.0.0 from lock file npm ERR! Missing: buffer-from@1.1.2 from lock file npm ERR! Missing: char-regex@1.0.2 from lock file npm ERR! Missing: glob@7.2.3 from lock file npm ERR! Missing: minimatch@3.1.2 from lock file npm ERR! Missing: is-number@7.0.0 from lock file npm ERR! Missing: picocolors@1.0.0 from lock file npm ERR! Missing: convert-source-map@1.9.0 from lock file npm ERR! Missing: makeerror@1.0.12 from lock file npm ERR! Missing: tmpl@1.0.5 from lock file npm ERR! Missing: isexe@2.0.0 from lock file npm ERR! Missing: imurmurhash@0.1.4 from lock file npm ERR! Missing: ms@2.1.2 from lock file npm ERR! Missing: yallist@3.1.1 from lock file npm ERR! Missing: ansi-styles@3.2.1 from lock file npm ERR! Missing: escape-string-regexp@1.0.5 from lock file npm ERR! Missing: supports-color@5.5.0 from lock file npm ERR! Missing: color-convert@1.9.3 from lock file npm ERR! Missing: color-name@1.1.3 from lock file npm ERR! Missing: has-flag@3.0.0 from lock file npm ERR! Missing: ms@2.1.2 from lock file npm ERR! Missing: minimatch@3.1.2 from lock file npm ERR! Missing: brace-expansion@1.1.11 from lock file npm ERR! Missing: ms@2.1.2 from lock file npm ERR! Missing: cliui@8.0.1 from lock file npm ERR! Missing: yargs-parser@21.1.1 from lock file npm ERR! Missing: minimatch@3.1.2 from lock file npm ERR! Missing: brace-expansion@1.1.11 from lock file npm ERR! Missing: minimatch@3.1.2 from lock file npm ERR! Missing: brace-expansion@1.1.11 from lock file npm ERR! Missing: sprintf-js@1.0.3 from lock file npm ERR! Missing: p-try@2.2.0 from lock file npm ERR! Missing: brace-expansion@1.1.11 from lock file npm ERR! npm ERR! Clean install a project npm ERR! npm ERR! Usage: npm ERR! npm ci npm ERR! npm ERR! Options: npm ERR! [-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle] npm ERR! [-E|--save-exact] [-g|--global] [--global-style] [--legacy-bundling] npm ERR! [--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] npm ERR! [--strict-peer-deps] [--no-package-lock] [--foreground-scripts] npm ERR! [--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run] npm ERR! [-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]] npm ERR! [-ws|--workspaces] [--include-workspace-root] [--install-links] npm ERR! npm ERR! aliases: clean-install, ic, install-clean, isntall-clean npm ERR! npm ERR! Run "npm help ci" for more info npm ERR! A complete log of this run can be found in: npm ERR! /www-data-home/.npm/_logs/2023-02-25T03_38_57_463Z-debug-0.log; Error ID: beaf8772 Functions deploy had errors with the following functions: createUserDocument(us-central1) i functions: cleaning up build files... Error: There was an error deploying functions
解决方案
解决npm锁文件缺失依赖问题
- 进入functions目录,删除
package-lock.json和node_modules文件夹,执行npm install重新生成依赖和锁文件,确保本地依赖完整后再部署; - 检查
package.json中的依赖版本,若存在版本冲突或指定了过旧版本,尝试更新至稳定兼容版本(更新后需测试函数功能); - 部署时添加
--no-ci参数,跳过npm ci的严格校验,改用npm install安装依赖:firebase deploy --only functions --no-ci - 确认本地Node.js版本与Firebase Functions指定的Node.js 16版本一致,版本不匹配会导致依赖安装异常。
解决部署区域错误问题
- 在项目根目录的
firebase.json中配置全局默认部署区域:{ "functions": { "region": "eur3" } } - 若需单独指定
createUserDocument函数的区域,在函数代码中通过region参数声明:exports.createUserDocument = functions.region('eur3').auth.user().onCreate((user) => { // 函数业务逻辑 }); - 部署前确认
firebase.json已保存,执行firebase use检查当前关联的项目是否正确,确保本地配置与云端同步。
内容的提问来源于stack exchange,提问作者Carlos Gozalbes
相关产品推荐
相关产品推荐

