在我的KOA项目中,我使用koa-static
来服务静态文件。和简单的项目,它只是如下:
var koa = require('koa');
var serve = require('koa-static');
var app = new koa();
app.use(serve('./public'));
app.listen(3000);
我们计划将所有静态文件放在public
文件夹中。
,但是当我要运行节点应用时,我会收到以下错误消息。
koa-static@4.0.1@koa-staticindex.js:39 return async function serve (ctx, next) { ^^^^^^^^ SyntaxError: Unexpected token function
所以我的节点版本是 6.11.0
。和koa-static
使用的async/await
函数,该功能由Node.js支持,比V7.6.0。
因此,如果我不打算更新节点,那么无论如何是否可以解决此问题?我手动使用Babel
将我的ES6代码传输。但是对于包裹,我可以宝贝吗?
事实是,KOA专门围绕 async/await
和node.js 7.6.0或更高版本构建,这在GitHub上提到。因此,软件包开发人员只是遵循基本标准,并且在大多数情况下,不用费心支持node.js的早期版本。也许您应该重新考虑迁移?
绝对没有,有两种可见的方法可以使其起作用:
- 设置软件包。JSON步骤,以使您使用Babel作为安装过程的一部分(
npm install
具有preinstall
和postinstall
步骤)。这样,您将在安装后立即将包装发送。 - 将您的Webpack(Gulp,Grunt)配置为Precrocess
node_modules
或使用Babel特别是koa-static
。性能下降可能很重要,这是相当懒惰的解决方案。