ERR_PACKAGE_PATH_NOT_EXPORTED 与 firebase-admin 11.0.0 和 firebase-functions 3.21.2

nar*_*duk 6 node-modules firebase package.json google-cloud-functions firebase-admin

我正在尝试更新到最新版本firebase-admin(11.0.0)和firebase-functions(3.21.2)。我用的是firebase-tools11.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
Run Code Online (Sandbox Code Playgroud)

我在 StackOverflow 中看到过类似的错误,例如这个这个,但这个错误略有不同。问题不在于firebasefirebase-admin依赖项,而在于firebase-functions.

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

我怎样才能解决这个问题?

谢谢!

nar*_*duk 8

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

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

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

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

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