javascript - 如何在云函数中使用 ES6(esm) 导入/导出
问题描述
import functions from 'firebase-functions';
import UtilModuler from '@utilModuler'
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
从“@utilModuler”导入 UtilModuler;^^^^^^^^^
SyntaxError:Module._compile (internal/modules/cjs/loader.js:721:23) 处的意外标识符
注意事项
我正在使用通过导入/导出编写的第三方库(@utilModuler)。可能的解决方法:
- Fork 库并使用汇总生成 cjs 文件。
- esm就像一个魅力,但它会导致不必要的内存消耗
问题:有没有办法在谷歌云功能中使用混合导入 cjs 和 esm?(除了我上面描述的选项)
在部署功能中使用会很好,比如--experimental-modules
解决方案
"devDependencies": {
"@babel/core": "^7.2.0",
"@babel/preset-env": "^7.2.0",
"@babel/register": "^7.0.0"
}
.babelrc
{
"presets": ["@babel/preset-env"]
}
入口点 node.js 应用程序
require("@babel/register")({})
// Import the rest of our application.
module.exports = require('./index.js')
推荐阅读
- c# - 在代码隐藏中获取 WPF RelativeSource 绑定的值
- actionscript-3 - 获取 AS3 影片剪辑的高度给出了影片剪辑内滚动窗格的高度 - 我如何获得影片剪辑本身的高度?
- r - R 是否在寻找不存在的功能?
- amazon-web-services - AWS CLI 以 FIFO 方法将文件从文件夹同步到 S3
- spring-webflux - WebFlux 不返回给定状态
- javascript - Javascript:日期选择器未出现在我的日历上
- angular - 如何为我的 ngrx 商店处理过滤器功能?
- flutter - 无法将用户从 Auth0 同步到 Hasura
- java - 检测动画何时结束(Android Studio)
- angular - 使用 strictNullChecks 从可能为 null 的属性中键入别名