问题
import functions from 'firebase-functions';
import UtilModuler from '@utilModuler'
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello from Firebase!");
});
import UtilModuler from '@utilModuler'; ^^^^^^^^^
SyntaxError: Unexpected identifier at Module._compile (internal/modules/cjs/loader.js:721:23)
Caveats
I'm using third party libraries(@utilModuler) which were written via import/exports. Possible workarounds:
- Fork library and generate cjs file with rollup.
- esm works like a charm but it cause unnesecary memory consumptions
Question: is there are a way how to use hybrid import cjs and esm in google cloud function?(except options which I described above)
Would be nice to use in deploy function something like --experimental-modules
回答1:
"devDependencies": {
"@babel/core": "^7.2.0",
"@babel/preset-env": "^7.2.0",
"@babel/register": "^7.0.0"
}
.babelrc
{
"presets": ["@babel/preset-env"]
}
entry point node.js app
require("@babel/register")({})
// Import the rest of our application.
module.exports = require('./index.js')
来源:https://stackoverflow.com/questions/59904599/how-to-use-es6esm-imports-exports-in-cloud-functions