Firebase的Cloud Functions中的本地依赖项

时间:2017-10-04 04:50:12

标签: node.js firebase google-cloud-functions

当我尝试部署我的功能时,firebase抱怨这个:

count==2

但不是这样:

const admin = require('firebase-admin');
const functions = require('firebase-functions');
const C = require('../both/constants.js');

exports.myFunc = functions.database.ref('aRef').onCreate((event) => {
  // blah blah
}

Error: Error parsing triggers: Cannot find module '../both/constants.js'

为什么?

更新:看起来会发生这种情况,因为函数在运行时才会查找依赖项。这当然是一个问题,因为仍然需要依赖。我应该提一下我的项目如下:

const admin = require('firebase-admin');
const functions = require('firebase-functions');

// This is the invite that goes to organizations.
exports.myFunc = functions.database.ref('aRef').onCreate((event) => {
  const C = require('../both/constants.js');
}

更新2 现在,我正在将我的堆栈完全移至Firebase功能,我又回到了这个问题上。需要发布模块才能在函数内工作。对于发生在这个psot上的任何人来说,仅供参考。

2 个答案:

答案 0 :(得分:4)

不支持将函数代码放在functions目录以外的任何位置。注意当你部署它时说:

i  functions: preparing functions directory for uploading...
i  functions: packaged functions (34.06 KB) for uploading
✔  functions: functions folder uploaded successfully

只关注functions及其所有子文件夹。

如果我部署的代码需要functions之外的代码,我也会在控制台中看到“找不到模块”错误。

答案 1 :(得分:0)

我将模块包含在另一个存储库中,希望将其包含在我的Firebase函数中。我的解决方案是使用git sparse-checkout将所需的文件夹放入\ functions \文件夹中。然后,我将脚本添加到package.json中,以获取最新代码。 How do I clone a subdirectory only of a Git repository?

也许有帮助。