Использование Koa2 с Babel в узле

Я знаю, что здесь что-то упускаю. Я запускаю node через babel и использую koa2 на своем сервере. Довольно новичок в этом, поэтому не совсем уверен, что мне не хватает, так как я ссылался на многие вещи в Интернете.

Версии: Node 6.4, babel-core 6.14.0, babel-polyfill": 6.13.0

Получение забавной ошибки. Похоже генератор почему-то не производится.

assert.js:89
  throw new assert.AssertionError({
  ^
AssertionError: app.use() requires a generator function
    at Application.app.use (/Users/administrator/Dropbox/Development/moonlite/moonlitewww/node_modules/koa/lib/application.js:106:5)

Вот от чего я убегаю:

Пакет.json

"start:dev": "node -r babel-core/register index.js",

.Babelrc

{
  "presets": ["es2015", "react", "stage-3"]
}

Index.js

require("babel-polyfill");
import nodeServer from "./web-server.js";
var config = {
  prod: process.env.NODE_ENV === "production",
  serverPort: process.env.PORT || 3000
};
nodeServer(config);

веб-сервер.js

import Koa from 'koa';
import koaRouter from 'koa-router';
import send from 'koa-send';
import serve from 'koa-serve';
import logger from 'koa-logger';

const router = koaRouter();
const app = new Koa();

export default (config) => {

  app.use(logger());
  app.use(serve(__dirname + '/client/build'));

  app.use(router.routes());
  app.use(router.allowedMethods());

  app.listen(config.serverPort, () => {
    console.log('Server running on port:' + config.serverPort);
  });

};

Что мне здесь не хватает?


person Justin    schedule 08.09.2016    source источник


Ответы (1)


Нубская ошибка с моей стороны. Я объединял пакеты из другого файла package.json, и каким-то образом koa вернулся к ветке 1.x. Гонялся за рыжим зайцем, думая, что это вавилон.

Если вы видите похожую ошибку, дважды проверьте версию koa и обновите ее до koa2 следующим образом:

npm install koa@next --save


"ТЕПЕРЬ ТЫ ЗНАЕШЬ, И ЗНАТЬ - ЭТО ПОЛОВИНА ДЕЛА..."

person Justin    schedule 09.09.2016