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

NextJS+GenKit+Firebase部署失败:依赖冲突问题求助

部署NextJS + GenKit + Firebase Admin应用时的peer依赖冲突解决

问题概述

部署基于NextJS、GenKit和Firebase Admin的RAG聊天机器人到Firebase时遭遇peer依赖冲突,本地运行正常,已尝试将Firebase、GenKit和Firebase Tools更新至最新版本,问题仍存在。

错误日志

Build failed with status: FAILURE and message: npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: @genkit-ai/firebase@0.9.7
npm error Found: genkit@0.9.6
npm error node_modules/genkit
npm error   genkit@"^0.9.4" from the root project
npm error   peer genkit@"0.9.6" from @genkit-ai/googleai@0.9.6
npm error   node_modules/@genkit-ai/googleai
npm error     @genkit-ai/googleai@"^0.9.4" from the root project
npm error   1 more (@genkit-ai/vertexai)
npm error
npm error Could not resolve dependency:
npm error peer genkit@"0.9.7" from @genkit-ai/firebase@0.9.7
npm error node_modules/@genkit-ai/firebase
npm error   @genkit-ai/firebase@"^0.9.7" from the root project
npm error
npm error Conflicting peer dependency: genkit@0.9.7
npm error node_modules/genkit
npm error   peer genkit@"0.9.7" from @genkit-ai/firebase@0.9.7
npm error   node_modules/@genkit-ai/firebase
npm error     @genkit-ai/firebase@"^0.9.7" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /www-data-home/.npm/_logs/2024-12-05T20_21_42_782Z-eresolve-report.txt
npm error A complete log of this run can be found in: /www-data-home/.npm/_logs/2024-12-05T20_21_42_782Z-debug-0.log. For more details see the logs at https://console.cloud.google.com/cloud-build/builds;region=us-east1/a980b836-aa34-44bf-b7d3-4487e45b59bb?project=*******.

Functions deploy had errors with the following functions:
        **********(us-east1)
i  functions: cleaning up build files...

Error: There was an error deploying functions

代码示例

import { devLocalIndexerRef } from "@genkit-ai/dev-local-vectorstore";
import { textEmbedding004, vertexAI } from "@genkit-ai/vertexai";
import { genkit } from "genkit";
import {} from "@genkit-ai/core";
import {
  initializeApp,
  AppOptions,
  cert,
  ServiceAccount,
} from "firebase-admin/app"; // firebase admin
import { getFirestore } from "firebase-admin/firestore";// firebase admin
import { defineFirestoreRetriever } from "@genkit-ai/firebase";


const ai = genkit({
  plugins: [
    vertexAI({
      googleAuth: {
        projectId: "********",
        scopes: ["********"],
        credentials: {
          client_id: "********",
          project_id: "********",
          client_email: "********",
          client_secret: "",
          private_key: "********"
        },
      },
      projectId: "********",
      location: "********",
    }),
  ],
});


const credentials: ServiceAccount = {
  projectId: "********",
  privateKey: "********",
  clientEmail: "********",
};
const options: AppOptions = {
  credential: cert(credentials),
};
const app = initializeApp(options);


export const faqRetriever = defineFirestoreRetriever(ai, {
  name: "faqRetriever",
  firestore: getFirestore(app),
  collection: "studentFaq",
  contentField: "text",
  vectorField: "embedding",
  embedder: textEmbedding004, // Import from '@genkit-ai/googleai' or '@genkit-ai/vertexai'
  distanceMeasure: "COSINE", // "EUCLIDEAN", "DOT_PRODUCT", or "COSINE" (default)
});

export const articleIndexer = devLocalIndexerRef("studentQA");

export const chunkingConfig = {
  minLength: 1000,
  maxLength: 2000,
  splitter: "sentence",
  overlap: 100,
  delimiters: "",
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
} as any;

// type declaration above, consider updating types

环境信息

  • nvm版本:0.39.1
  • Node.js版本:v20.18.1
  • macOS版本:14.4.1 (23E224)
  • Firebase CLI:最新版

部署步骤

  1. 执行firebase init,选择Hosting选项
  2. 选择使用实验性框架,指定NextJS并启用TypeScript
  3. 执行firebase deploy

解决方案

方法1:统一GenKit生态包版本

错误核心是@genkit-ai/firebase@0.9.7要求genkit@0.9.7,但项目中genkit为0.9.6,且其他GenKit插件依赖0.9.6。修改package.json,将所有GenKit相关包版本统一:

{
  "dependencies": {
    "genkit": "^0.9.7",
    "@genkit-ai/firebase": "^0.9.7",
    "@genkit-ai/vertexai": "^0.9.7",
    "@genkit-ai/googleai": "^0.9.7"
    // 其他依赖保留原有配置
  }
}

执行以下命令重新安装依赖后部署:

rm -rf node_modules package-lock.json
npm install
firebase deploy

方法2:启用legacy peer依赖模式

若统一版本不可行,可强制npm跳过peer依赖检查。修改firebase.json,在构建阶段添加--legacy-peer-deps参数:

{
  "hosting": {
    "source": ".",
    "frameworksBackend": {
      "region": "us-east1"
    },
    "predeploy": ["npm install --legacy-peer-deps", "npm run build"]
  }
}

之后重新执行firebase deploy。

方法3:降级@genkit-ai/firebase版本

若升级genkit到0.9.7引发其他冲突,可将@genkit-ai/firebase降级至0.9.6,与当前genkit版本匹配:

{
  "dependencies": {
    "@genkit-ai/firebase": "^0.9.6"
  }
}

重新安装依赖后部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 19:41:10