代码之家  ›  专栏  ›  技术社区  ›  jonasxd360

firebase云函数部署全局错误

  •  0
  • jonasxd360  · 技术社区  · 6 年前

    firebase deploy 我的所有函数都出现此错误:

    !  functions[deleteGame-DeleteGameFunction(us-central1)]: Deployment error.
    Function load error: Code in file index.js can't be loaded.
    Did you list all required modules in the package.json dependencies?
    Detailed stack trace: Error: Cannot find module 'glob'
        at Function.Module._resolveFilename (module.js:476:15)
        at Function.Module._load (module.js:424:25)
        at Module.require (module.js:504:17)
        at require (internal/module.js:20:19)
        at Object.<anonymous> (/user_code/index.js:11:14)
        at Module._compile (module.js:577:32)
        at Object.Module._extensions..js (module.js:586:10)
        at Module.load (module.js:494:32)
        at tryModuleLoad (module.js:453:12)
        at Function.Module._load (module.js:445:3)
    

    这是我的索引.js文件 (I got it from here)

    'use strict';
    /** EXPORT ALL FUNCTIONS
     *
     *   Loads all `.f.js` files
     *   Exports a cloud function matching the file name
     *   Author: David King
     *   Edited: Tarik Huber
     *   Based on this thread:
     *     https://github.com/firebase/functions-samples/issues/170
     */
    const glob = require("glob");
    const camelCase = require("camelcase");
    const files = glob.sync('./**/*.f.js', { cwd: __dirname, ignore: 
    './node_modules/**'});
    for(let f=0,fl=files.length; f<fl; f++){
      const file = files[f];
      const functionName = camelCase(file.slice(0, -5).split('/').join('_')); // 
    Strip off '.f.js'
      if (!process.env.FUNCTION_NAME || process.env.FUNCTION_NAME === 
    functionName) {
        exports[functionName] = require(file);
      }
    }
    

    这个索引.js文件是一种组织firebase云函数的方法,我在 https://postmarkapp.com/blog/sending-transactional-emails-via-firebase-and-cloud-functions https://codeburst.io/organizing-your-firebase-cloud-functions-67dc17b3b0da 谢谢你的帮助!

    1 回复  |  直到 6 年前
        1
  •  2
  •   Doug Stevenson    6 年前

    听起来你需要从你的函数目录运行这个:

    npm install glob
    

    npm install camelcase
    

    require 一个没有像这样先安装到项目中的模块。