出于某种原因,firebase deploy --only functions
包含外部webapp项目的node_modules
,请参见以下输出:
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的依赖项。
将功能文件夹隔离到一个单独的项目中时,功能的构建/部署工作正常。
有什么想法吗?
答案 0 :(得分:0)
您不能在托管和功能之间共享node_modules文件夹。您已经发现,它们应该是单独的节点项目。
此外,运行firebase deploy --only functions
时未部署node_modules。实际上,当前不支持完全实现的node_modules。相反,Cloud Functions将查看您的functions项目中的package.json(package-lock.json),并有效执行npm install
来组装其中列出的所有依赖项。