2017-09-04 179 views
2

在我的Koa項目中,我使用koa-static來提供靜態文件。而簡單的項目它只是如下:koa-static:舊的Node.js不支持異步功能

var koa = require('koa'); 
var serve = require('koa-static'); 
var app = new koa(); 
app.use(serve('./public')); 
app.listen(3000); 

我們計劃把所有的靜態文件的文件夾public

但是當我想運行Node應用程序時,我收到以下錯誤消息。

[email protected]@koa-static\index.js:39 
return async function serve (ctx, next) { 
      ^^^^^^^^ 
SyntaxError: Unexpected token function 

所以我的節點版本是6.11.0koa-static使用async/await函數,該函數由比v7.6.0更新的Node.js支持。

所以,如果我不打算更新節點,有無論如何解決這個問題?我手動使用Babel來傳輸我的ES6代碼。但是對於這個包,我可以詛咒它嗎?

+0

與巴貝爾的運輸 – david

回答

0

事情是,科阿是專門建立在async/await和Node.js 7.6.0或更高,這是在GitHub提到的。因此軟件包開發人員只是遵循基本標準,大部分時間都不打擾支持較早版本的Node.js。也許你應該重新考慮遷移?

如果絕對不行,有兩個明顯的方式,使其工作:

  1. 設置的package.json步驟,給你巴貝爾transpile作爲安裝過程的一部分(npm install具有preinstallpostinstall步驟)。這樣你就可以在安裝完成後立即編譯軟件包。
  2. 將您的Webpack(Gulp,Grunt)配置爲與Babel預處理node_modules或特別是koa-static。性能下降可能很重要,這是一個相當懶惰的解決方案。