Firebase Functions with Babel config to target the correct Execution Environment
Use Babel to target the correct execution environment for Cloud Functions for Firebase and use modern languages features (ES6+) to develop.
Here is the accompanying Medium post.
Project Layout Description
I suggest developing your Cloud Functions in the
src/functions/ directory and output everything to a
dist/functions/ folder. By using a single root
package.json we remove the need for maintaining and possibly merging two or more for the Functions themselves and other code, like a frontend app.
@babel/preset-env with some npm scripts to compile to the Cloud Functions server runtime of NodeJS v6.11.5. The output directory,
dist/functions/ is created on compilation in the deploy step (yarn deploy).
Firebase predeploy scripts are used in the
firebase.json to coordinate which npm scripts get called before deploying to ensure everything is built.
Download & Install
# Clone this dircurl https://codeload.github.com/jthegedus/blog-code/tar.gz/master | tar -xz --strip=1 blog-code-master/firebase-functions-es6-babelcd firebase-functions-es6-babel# Installyarn
Login to the Firebase CLI
If you're using
firebase-tools globally, then skip to the Deploy to Firebase step.
Deploy to Firebase
.firebaserc to use your Firebase project id.