升级firebase-functions和firebase-admin后,无法在我的functions目录上执行npm运行构建

tvz2xvvm  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(93)

我已经开发这个应用程序相当长的时间了,在阅读了控制台关于firebase-functions过时版本和我应该升级到最新版本的警告后,我终于决定更新。现在,即使一切似乎都正常工作,我无法在模拟器上测试时成功运行npm run build,因为我收到了很多与node_modules文件夹中的包相关的错误消息。
我正在运行本地模拟器,所有新代码在部署到生产环境之前都会在这里进行测试。这是这两个包在我的package.json文件中更新前后的样子:

  • 之前 *
"firebase-admin": "^9.8.0",
"firebase-functions": "^3.22.0",
  • 之后 *
"firebase-admin": "^10.0.2",
"firebase-functions": "^4.0.0",

问题

更新后,我无法成功运行npm run build,并且我得到了一堆与node_modules中的包相关的错误。其中一些软件包是:

node_modules/@firebase/util/dist/
node_modules/@types/express-serve-static-core
node_modules/firebase-functions/lib/common

错误并不是那么冗长,而是这样的:

21 export declare type Extract<Part extends string> = Part extends `{${infer Param}=**}` ? Param : Part extends `{${infer Param}=*}` ? Param : Part extends `{${infer Param}}` ? Param : never;

我会附上一个截图与一些错误,我得到的。

What have I Already tried doing

*安装的firebase-functions最新版本:在我的functions目录中只更新了firebase-functionsnpm install --save firebase-functions@latest

  • 这导致functionsfirebase-admin包为discussed on this question时的依赖项冲突
    *安装的firebase-admin最新版本:通过运行npm install --save firebase-admin@latest和安装最新版本的firebase-functions解决了依赖性问题。
  • 这解决了冲突,但这是运行npm run build后开始出现问题的地方
  • 我也得到了一堆新的错误,导致升级,但我解决了他们,一切似乎工作正常。
    *删除node_modulespackage-lock.json:为了正确地重新安装依赖项,删除了这两个文件并运行npm install,但问题仍然存在。
    *升级到特定版本的函数和管理员:当我在这个兔子洞里深深地潜水时,我注意到也许升级到一个特定的版本会有所帮助。所以我选择了firebase-admin@10.0.0firebase-functions@4.0.0。但什么都没有。

那么,我在寻找什么?

我的工作流程如下:

  • 编写新代码
  • 运行npm run build查看是否一切正常,应用程序是否通过了linter测试
  • 测试代码
  • 推送代码
  • ...
  • 部署前的npm run lint(通过)
  • 展开

所以,对我来说,npm run build告诉我一切都好,我可以继续编写代码。我真的不知道这是否有必要,但我一直在这样工作。它给我一种安全感。
所以我想知道为什么我不能运行npm run build,是什么导致了所有这些与我无关的错误,以及我如何解决这个问题。
我还担心这会影响函数的部署,因为npm run build没有通过,所以无法正确部署。

我的项目设置

***firebase-functions:**3.20.1
***firebase-tools:**11.16.1
***firebase-admin:**10.1.0
*语言: typescript
*节点版本:14.21.1(使用nvm)

截图

mbyulnm0

mbyulnm01#

问题可能是由于过时的Typescript版本。尝试将typescript升级到较新版本。
Update theses packages

相关问题