簡體   English   中英

SailsJS是否支持ES6?

[英]Does SailsJS support ES6?

有沒有辦法在sails.js中獲得ES6

SailsJS只是一個通過ES5語法編寫的框架,它不需要支持ES6。

您可以像平常一樣使用ES6語法編寫項目,並使用Babel \\ Traceur \\以便運行。

我的流程如下:

  • 創建Sails項目;
  • 安裝babel作為devDependencies ;
  • 使用"start": "babel-node app.js"更新package.json npm start腳本"start": "babel-node app.js" ;

而已。 我可以在我的controllers \\ models \\ etc中編寫ES6 \\ 7代碼,並通過npm start命令運行服務器。 它像往常一樣使用ES5語法編寫它。

Babel Transpiler

Babel節點

您需要檢查ES6與node.js的兼容性,而不是像sails.js,express等任何框架。

因為最后node.js會將javaScript更改為服務器端代碼。 因此,使用哪個框架無關緊要。

你可以使用ES6的帆:

對於ES6兼容性,請檢查kangax.github.io

推薦的 :

風帆 v 0.11.0或更高

節點 v 4 或更高

npm v 2.14.4或更高版本

現在您已准備好探索新的Ecmascript6功能。

您將從http://es6-features.org/獲得新功能。

測試:

碼:

ecma6Test:function(req,res,next){
    var evens =req.body.evens
    odds  = evens.map(v => v + 1);
    res.json({sucess:true,'odds':odds});
}

請求:

{"evens":[2,4,6,8,10]}

回應:

{
    "sucess": true,
    "odds":[3, 5, 7, 9, 11]
}

這是一個node.js問題,不是特定的風帆。 是當前版本的node.js支持某些ES2015標准,具體取決於您啟動服務器時使用的Node.js版本和標志。

大多數功能已經處於活動狀態,但是要使用所有功能,您可以在項目文件夾中使用node app.js --es_stagingnode app.js --harmony node app.js --es_staging而不是node app.js --es_staging sails lift

以下鏈接提供有關Node支持的當前版本以及如何訪問它們的功能的更新信息。

https://nodejs.org/en/docs/es6/

Vishnu的回答讓你了解。

最新節點版本中提供的ES6功能的明確列表位於https://nodejs.org/en/docs/es6/

默認情況下哪個ES6功能附帶Node.js(不需要運行時標志)?

  • let(僅限嚴格模式)
  • 常量
  • 功能塊(僅限嚴格模式)
    • 從v8 3.31.74.1開始,有意地使用對嚴格模式代碼的不合規限制來實現塊范圍聲明。 開發人員應該意識到,隨着v8繼續遵循ES6規范,這將發生變化。
  • 類(僅限嚴格模式)
  • 集合
  • 地圖
  • WeakMap
  • WeakSet
  • 鍵入的數組
  • 發電機
  • 二進制和八進制文字
  • 對象文字擴展(速記屬性和方法)
  • 承諾
  • 新的String方法
  • 符號
  • 模板字符串
  • 箭頭功能

有一個帆 - 鈎 - 巴貝爾鈎可能會為你工作。 它對我不起作用,正如我在下面解釋的那樣,但我希望它獲得更高的可見性,得到改善,然后這個答案將更具相關性。

目前,從v6.0.1開始,該庫將用於在sails鈎子運行后加載的文件。 這意味着如果您想在例如config/routes.js文件中使用ES2015,則會出現語法錯誤。 但正如本期所述 ,它應該適用於例如api文件夾中的文件。

暫無
暫無

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

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