【发布时间】:2019-04-30 13:07:22
【问题描述】:
我创建了一个使用此配置库 https://www.npmjs.com/package/config 的 firebase 函数。当我在本地运行它时,一切正常。
当我尝试部署时,firebase deploy --only functionsfunctions 文件夹中的配置目录和相关文件似乎没有上传。我的函数在尝试读取配置值时失败。
我如何告诉 firebase 将我的配置目录与函数一起部署?
更新
文件夹结构是
- 功能
- index.js
- package.json
- 测试
- index.test.json
- node_modules
- ...
- 配置
- default.json
firebase 输出如下
root@fc19e6bca144:/appfiles# firebase deploy --only functions
=== Deploying to 'familybank'...
i deploying functions
i functions: ensuring necessary APIs are enabled...
✔ functions: all necessary APIs are enabled
i functions: preparing functions directory for uploading...
Error: Error occurred while parsing your function triggers.
Error: Configuration property "dialogflow.intents.welcome_user" is not defined
at Config.get (/appfiles/functions/node_modules/config/lib/config.js:203:11)
at Object.<anonymous> (/appfiles/functions/index.js:39:19)
at Module._compile (internal/modules/cjs/loader.js:707:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
at Module.load (internal/modules/cjs/loader.js:605:32)
at tryModuleLoad (internal/modules/cjs/loader.js:544:12)
at Function.Module._load (internal/modules/cjs/loader.js:536:3)
at Module.require (internal/modules/cjs/loader.js:643:17)
at require (internal/modules/cjs/helpers.js:22:18)
at /usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:15:15
at Object.<anonymous> (/usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:53:3)
at Module._compile (internal/modules/cjs/loader.js:707:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:718:10)
at Module.load (internal/modules/cjs/loader.js:605:32)
at tryModuleLoad (internal/modules/cjs/loader.js:544:12)
dialogflow.intents.welcome_user在config/defaults.json中提供,所以我认为它没有上传。
【问题讨论】:
-
您能否更新您的问题以显示您的项目的文件夹层次结构,包括配置文件的位置,以及您如何使用库来加载配置文件?
-
当函数depoy失败时,你能包括你得到的错误吗?
-
我发现错误发生在这里github.com/firebase/firebase-tools/blob/…。由于firebase在functions目录下运行,node-config找不到配置目录。如果我将配置目录复制到运行 firebase 命令的位置,我可以进行部署。我也试过设置环境变量NODE_CONFIG_DIR,但是没有效果。
-
我意识到,当我运行 firebase 命令时,会忽略整体环境变量。我试图
firebase functions:config:set NODE_CONFIG_DIR="./functions/config",但我收到一个关于它是大写的错误。
标签: javascript firebase google-cloud-functions actions-on-google node-config