¿Cómo ejecutar la aplicación Node.js con las características de ES2017 habilitadas en Heroku?

Soy nuevo en Node y creé una aplicación que tiene algo de syntax asíncrona / espera como:

const express = require('express'); const app = express(); const someLibrary = require('someLibrary'); function asyncWrap(fn) { return (req, res, next) => { fn(req, res, next).catch(next); }; }; app.post('/getBlock', asyncWrap(async (req,res,next) => { let block = await someLibrary.getBlock(req.body.id); [some more code] })); app.listen(process.env.PORT || 8000); 

Funciona bien en mi máquina, pero cuando lo implemento en Heroku obtengo un error porque la syntax no es compatible:

 2017-03-23T10:11:13.953797+00:00 app[web.1]: app.post('/getBlock', asyncWrap(async (req,res,next) => { 2017-03-23T10:11:13.953799+00:00 app[web.1]: SyntaxError: Unexpected token ( 

¿Cuál es la forma más fácil de hacer que Heroku admita esta syntax?

Especifique la versión de nodo que desea usar en su package.json: https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version

Así que para el soporte de async / await querrás especificar> = 7.6.0

 { "engines": { "node": ">= 7.6.0" } } 

De la documentación de Heroku aquí.

https://devcenter.heroku.com/articles/getting-started-with-nodejs#declare-app-dependencies

debe declararse en su archivo package.json a qué motor (es) debe ser accesible:

 { "name": "node-js-getting-started", "version": "0.2.5", ... "engines": { "node": "5.9.1" }, "dependencies": { "ejs": "2.4.1", "express": "4.13.3" }, ... }