首页 > 解决方案 > Firebase webpack + babel 功能未部署

问题描述

是否可以使 firebase 功能与 webpack 和 babel 一起使用?

我们需要在服务器端重用我们无法编辑的现有 ES6 类,因此我们需要转换它们以使其在 node.js 中工作。

在相关教程上花了两天时间,但我遇到了一个问题,即在 webpack 将它们包装在一个函数中之后,firebase 似乎看不到 index.js 中声明的函数。

这是生成的 index.js 的一部分:

(function(module, exports, __webpack_require__) {

    var functions = __webpack_require__(/*! firebase-functions */ "firebase-functions");
    var admin = __webpack_require__(/*! firebase-admin */ "firebase-admin");
    admin.initializeApp();

    exports.api = functions.https.onRequest(function (req, res) {
      res.send({
        msg: "ok"
      });
    });

})

exports.api = functions.https.onRequest在这种情况下不部署。

有没有可能让 firebase 与 webpack 和 babel 一起工作?

标签: firebasewebpackgoogle-cloud-functionsbabeljs

解决方案


使用 webpack 捆绑您的函数应用程序是一个好主意,原因有很多:

  • 访问 webpack 加载器/插件
  • 更好的 HMR 开发人员体验(比函数运行时的实现更好)
  • 更好的部署和运行性能(一个或几个优化的块与成百上千的未优化/未使用的文件)

此答案中涵盖了许多要求,但与其自己制作,不如使用webpack-cloud-functions(我是其中的作者)更容易。它抽象了你需要做的大部分配置——例如libraryTarget,一些externals等等,并且还为开箱即用的开发提供了可靠的 HMR。


推荐阅读