typescript - 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 的依赖项。
将功能文件夹隔离到单独的项目中时,功能的构建/部署工作正常。
有任何想法吗?
解决方案
您不能在托管和功能之间共享 node_modules 文件夹。正如您所发现的,它们应该是单独的节点项目。
此外,运行时不会部署 node_modules firebase deploy --only functions
。事实上,目前不支持完全物化的 node_modules。相反,Cloud Functions 将查看您的函数项目中的 package.json (package-lock.json),并有效地执行npm install
以组装其中列出的所有依赖项。
推荐阅读
- java - 将我的 Java Swing 程序转换为 MVC 程序?
- testing - TestCafe - 报告路径
- python - 我可以在 python lib 文件夹中安全地删除什么?
- xml - XSLT:按多个特征对项目进行排序
- list - 将 Power BI 中的对与内部联接进行比较:为什么“表为空”?应该使用“List.Difference”吗?
- css - 垂直对齐不适用于自定义控件
- hadoop - Apache Ozone + AWS S3 .Net API:PutObject 正在创建存储桶而不是密钥
- kubernetes - Helm:模板中的中断循环(范围)
- jenkins - Jenkins:历史记录中任何已完成构建的自定义命令,可访问此构建的 ID,理想情况下来自构建历史菜单
- java - 如何以 application/x-www-form-urlencoded 格式将正文添加到 HTTPURLConnection 中的 POST 调用