繁体   English   中英

使用node-config部署Firebase功能

[英]Deploy Firebase functions with node-config

我创建了一个使用此配置库https://www.npmjs.com/package/config的firebase函数。 在本地运行时,一切正常。

当我尝试部署时, firebase deploy --only functions将config目录和相关功能文件放置在functions文件夹中,似乎没有上载。 我的函数在尝试读取配置值时失败。

如何告诉Firebase部署我的config目录以及功能?

更新

文件夹结构为

  • 职能
    • index.js
    • 的package.json
    • 测试
      • index.test.json
    • node_modules
      • ...
    • 配置
      • default.json

火力输出以下

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)

config/defaults.json提供了dialogflow.intents.welcome_user ,因此我认为它没有上传。

大多数细节都在此问题中: https : //github.com/firebase/firebase-tools/issues/1046 (以及相应的拉取请求)。

在这种情况下,node-config会在脚本最初运行的目录之外而不是相对于要导入的脚本寻找config目录。 尽管node-config确实提供了一种使用环境变量来覆盖它的方法, https://github.com/lorenwest/node-config/wiki/Environment-Variables ,但是Firebase CLI删除了环境变量,因此它仍然无法找到它。

如请求请求中所示,此修复程序是捕获当前环境变量并将其传递给fork进程,以便它们可用于node-config。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM