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)。可能的解决方法:
问题:有没有一种方法可以在Google云功能中使用混合导入cjs和esm?(除了我上面描述的选项之外)
很好用在部署功能中,例如--experimental-modules
答案 0 :(得分:2)
"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')
答案 1 :(得分:0)
看起来,最新版本的 firebase CLI (https://github.com/firebase/firebase-tools/releases/tag/v9.15.0) 已经添加了 ESM 支持:
$ npm install -g firebase-tools # Get the latest firebase-cli
$ firebase deploy --only functions # Deploy as usual
和
// package.json
...
"engines": {
"node": "14"
},
"type": "module",
"dependencies": {
"@google-cloud/functions-framework": "^1.9.0",
...
},
和一个示例函数:
// index.js
import functions from "firebase-functions";
export const helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});