簡體   English   中英

koa-static:舊的Node.js不支持異步功能

[英]koa-static: async function isn't supported by old Node.js

在我的Koa項目中,我使用koa-static來提供靜態文件。 而這個簡單的項目如下所示:

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

我們計划把所有的靜態文件的public文件夾中。

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

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

所以我的Node版本是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。 也許您應該重新考慮遷移?

如果絕對不可行,有兩種可見的方法可以使它起作用:

  1. 設置package.json步驟,以便在安裝過程中與Babel進行轉換( npm install具有preinstallpostinstall步驟)。 這樣,您將在安裝后立即轉譯軟件包。
  2. 配置Webpack(Gulp,Grunt)以預處理node_modules或使用Babel專門進行koa-static 性能下降可能會很嚴重,這是一個很懶的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM