firebase - 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 一起工作?
解决方案
使用 webpack 捆绑您的函数应用程序是一个好主意,原因有很多:
- 访问 webpack 加载器/插件
- 更好的 HMR 开发人员体验(比函数运行时的实现更好)
- 更好的部署和运行性能(一个或几个优化的块与成百上千的未优化/未使用的文件)
此答案中涵盖了许多要求,但与其自己制作,不如使用webpack-cloud-functions(我是其中的作者)更容易。它抽象了你需要做的大部分配置——例如libraryTarget
,一些externals
等等,并且还为开箱即用的开发提供了可靠的 HMR。