在节点中使用Koa2和Babel

时间:2016-09-08 03:04:56

标签: node.js ecmascript-6 babel koa2

我知道我在这里遗漏了一些东西。我正在通过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)

这就是我的目标:

的package.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);

网络server.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);
  });

};

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

诺布错了我。我正在合并另一个package.json文件中的软件包,并且某种程度上koa被还原为1.x分支。追逐一个红色的人认为这是巴贝尔。

如果你看到类似的错误,请仔细检查你的koa版本,并像这样升级到koa2:

<强> npm install koa@next --save

“你现在知道,并且知道它已经成为战斗......”