Хостинг Express API с синтаксисом es6 на героку - PullRequest
0 голосов
/ 04 октября 2019

Я недавно преобразовал свой экспресс api fron es5 в синтаксис es6, и сборка heroku не выполняется со следующей ошибкой heroku-cli

import express from 'express';

SyntaxError: Unexpected identifier

, которая заставляет меня поверить, что не удается перенести мой код es6 в es5.

Procfile

web: node ./src/index.js

Это мой файл babelrc

{
  "presets": ["@babel/preset-env"],
  "plugins": [
    "@babel/plugin-transform-runtime",
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-object-rest-spread",
    "@babel/plugin-transform-async-to-generator",
    "@babel/plugin-transform-object-assign"
  ],
  "ignore": ["node_modules", "**/public"]
}

, и это сценарии, которые я запускаю в моем package.json

  "scripts": {
    "start": "env-cmd -f ./config/dev.env  nodemon --watch src --exec babel-node src/index.js",
    "dev": "env-cmd -f ./config/dev.env  nodemon src/index.js",
    "test": "env-cmd -f ./config/test.env  jest --forceExit --detectOpenHandles --coverage",
    "travis": "jest  --forceExit --detectOpenHandles --coverage",
    "lint": "eslint src/"
  },

Для большей ясности мой файл index.js выглядит примерно так:

import express from 'express';
import bodyParser from 'body-parser';
import passport from 'passport';
import './db/mongoose'
import cors from 'cors';
import router from './routes';

const app = express();
const port = process.env.PORT || 8000;
//Body parser middleware
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

.... some code

app.use((req, res, next) =>{
  return res.status(404).json({
    message:'Resource not found',
    status: false
  })
})


if(process.env.NODE_ENV !== 'test') {
  app.listen(port, () => {
    console.log(`Server running on port ${port}`);
  });
}

export default app

Приложение отлично работает локально, тесты проходят как локально, так и на Travis. Я что-то пропустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...