代码之家  ›  专栏  ›  技术社区  ›  Daniel Watrous

使用节点配置部署FireBase函数

  •  0
  • Daniel Watrous  · 技术社区  · 6 年前

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

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

    如何告诉FireBase将配置目录与函数一起部署?

    更新

    文件夹结构是

    • 功能
      • 索引文件
      • 包装袋
      • 测试
        • 索引文件
      • 节点模块
      • 配置
        • 德逊

    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 ,所以我假设它没有上传。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Daniel Watrous    6 年前

    大部分细节都在这个问题上: https://github.com/firebase/firebase-tools/issues/1046 (和相应的拉请求)。

    在本例中,节点配置正在查找 config 从最初运行脚本的目录中删除的目录,而不是相对于正在导入的脚本。虽然node config确实提供了一种用环境变量来覆盖它的方法, https://github.com/lorenwest/node-config/wiki/Environment-Variables ,firebase cli删除了环境变量,因此仍然找不到它。

    如pull请求中所示,修复方法是捕获当前环境变量并将其传递给 fork 使它们可用于节点配置。