firebase - Firebase 函数本地“文件:”依赖项
问题描述
我正在使用react-crud-shared作为使用Firebase Cloud Functions的react-crud-backend 的依赖项。
在react-crud-backend我有以下内容:
{
"name": "react-crud-backend",
"description": "Cloud Functions for Firebase",
"scripts": {
...
},
"dependencies": {
...
"react-crud-shared": "file:../shared",
...
},
"engines": {
"node": "8"
},
"private": true,
"devDependencies": {
...
}
}
在react-crud-shared我有以下内容:
{
"name": "react-crud-shared",
"version": "0.0.1",
"description": "",
"main": "src/index.js",
"private": true,
"dependencies": {
"lodash": "^4.17.11"
}
}
它在开发中运行良好:“firebase serve --only 功能”,但在部署时抛出错误:
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'react-crud-shared'
有没有办法让它工作而不必将私有存储库发布到 NPM?
谢谢
解决方案
编辑:我找到了一个我更喜欢的解决方案。我在这里评论了这个 github 问题:https ://github.com/firebase/firebase-tools/issues/968#issuecomment-460323113 。npm pack
基本上,在我使用 firebase 部署之前,我有一个预安装脚本来运行以复制函数目录下的包。
FWIW我有完全相同的问题。不完全确定我将如何解决它,但文档中的这些信息很有帮助(https://firebase.google.com/docs/functions/handle-dependencies):
要为您的函数指定依赖项,请将其添加到您的 package.json 文件中。如果您通过 gcloud 命令行工具进行部署,您还可以预安装依赖项并将它们与您的函数一起部署。默认情况下,node_modules 文件夹会添加到您的 .gcloudignore 文件中,并且不会作为部署的一部分上传。要部署预安装的依赖项,请在部署函数之前从 .gcloudignore 文件中删除 node_modules/。
注意:部署预安装的依赖项仅适用于 gcloud;Firebase CLI 会忽略本地 node_modules 文件夹。
因此,您似乎可以先在本地运行“npm install”,然后使用 gcloud 进行部署,因为它会复制您的 node_modules 目录,其中包含您的对等依赖项。
不过,我不得不从 firebase CLI 切换到 gcloud 进行部署,这确实有点臭。啊。
推荐阅读
- visual-studio - Reporting Services tablix 不允许我冻结列标题和行
- spring - 由于 Spring 5 中的 Access / CORS 问题,无法访问我的后端的 URL
- python - 通过根据 MultiIndex 级别更改的值过滤列
- c# - C#/Unity:Visual Studio 参数未通过
- c++ - Avro C++:如何压缩内容?
- firebase - 在 onResume() 方法中。当我输入“mFirebaseAuth.addAuthStateListener(mAuthStateListener);”时,不幸的是在安装时停止了
- google-sheets - Google表格-如何将第1列中的每个项目与第2列中的每个项目连接起来
- c# - 保持外部编辑的数据完整性
- python - 当 managed=False 时如何运行 django 测试
- vb.net - 在列表框问题中将变量格式化为货币