首页 > 解决方案 > Firebase Cloud Functions 的打字稿:为什么我会收到构建错误,当函数文件夹在 Angular 项目中时,而不是在自己的项目中被隔离时?

问题描述

出于某种原因,firebase deploy --only functions包括node_modules外部 webapp 项目,请参阅以下输出:

i  deploying functions
Running command: npm --prefix "$RESOURCE_DIR" run build

> functions@ build /Users/username/data/projects/projectname/webapp/prp-cli/functions
> tsc

../node_modules/@types/jspdf/index.d.ts(186,32): error TS2304: Cannot find name 'HTMLElement'.

请注意,jsPdf 不是函数的依赖项,而是包含该functions文件夹的 webapp 的依赖项。

将功能文件夹隔离到单独的项目中时,功能的构建/部署工作正常。

有任何想法吗?

标签: typescriptfirebasebuildgoogle-cloud-functions

解决方案


您不能在托管和功能之间共享 node_modules 文件夹。正如您所发现的,它们应该是单独的节点项目。

此外,运行时不会部署 node_modules firebase deploy --only functions。事实上,目前不支持完全物化的 node_modules。相反,Cloud Functions 将查看您的函数项目中的 package.json (package-lock.json),并有效地执行npm install以组装其中列出的所有依赖项。


推荐阅读