Firebase-admin 11.0.0 和 firebase-functions 3.21.2 出现 ERR_PACKAGE_PATH_NOT_EXPORTED

问题描述 投票:0回答:3

我正在尝试更新到最新版本的

firebase-admin
(11.0.0) 和
firebase-functions
(3.21.2)。我正在使用
firebase-tools
11.1.0。尝试部署我的函数时出现此错误:

Error: Failed to load function definition from source: Failed to generate manifest from function source: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib' is not defined by "exports" in /Users/myuser/Documents/myproject/node_modules/firebase-functions/package.json

我在 StackOverflow 中看到过类似的错误,例如 this onethis one,但这个错误略有不同。问题不在于

firebase
firebase-admin
依赖关系,而在于
firebase-functions

使用

firebase-functions
3.14.1 可以工作(尽管我收到一些警告),但我想更新到最新版本,这样我就有希望摆脱警告并获得最新更新。

我该如何解决这个问题?

谢谢!

firebase google-cloud-functions node-modules package.json firebase-admin
3个回答
8
投票

正如错误所描述的,问题是我有导入引用 firebase-functions 的 lib 文件夹,如下所示:

import { HttpsError } from 'firebase-functions/lib/providers/https'
...
throw new HttpsError('failed-precondition', 'An error')

删除所有这些并替换为类似以下内容后,问题就消失了:

import { https } from 'firebase-functions'
...
throw new https.HttpsError('failed-precondition', 'An error')

第一种方法一直有效到 3.14.1。除此之外,看起来我们无法引用 from 中的 lib 文件夹。不理想,因为我想在使用这些类型时避免命名空间,但至少它有效。


2
投票

在文档中,我们可以找到一个警告来不断更新firebase-functions sdk。警告是:

在许多情况下,新功能和错误修复只能通过 最新版本的 Firebase CLI 和 firebase-functions SDK。 经常更新 Firebase CLI 和 SDK 的函数文件夹中包含这些命令 Firebase 项目:

npm install firebase-functions@latest firebase-admin@latest --save npm
install -g firebase-tools

这些可能是导致此错误消息的主要原因。因为您没有提供任何代码。

此外,它可能与 firebase-admin 11.0 版本冲突。此 GitHub 问题 声称 firebase-admin 11.0 不支持 firebase-functions 版本 3.21.2。但 firebase-admin 10.0 和 firebase-functions 版本 3.21.2 成功了。

我建议使用 firebase-admin 10.0 和 firebase-functions 版本 3.21.2。


0
投票

该问题与您在应用程序中的导入方式有关。我在末尾添加了额外的斜杠,这给了我同样的错误。

来自

const admin   = require('firebase-admin/');

const admin   = require('firebase-admin');
© www.soinside.com 2019 - 2024. All rights reserved.