web-dev-qa-db-ja.com

SailsJSはES6をサポートしていますか?

sails.jsES6 を取得する方法はありますか?

13
Jaseem Abbas

これはnode.jsの質問であり、特に出航するものではありません。はい。node.jsの現在のバージョンは、Node.jsのバージョンと、サーバーの起動時に使用するフラグに応じて、特定のES2015標準をサポートしています。

ほとんどの機能はすでにアクティブになっていますが、すべての機能を使用するには、プロジェクトフォルダでnode app.js --es_stagingの代わりにnode app.js --harmonyまたはsails liftを使用します。

次のリンクは、現在のバージョンのNodeサポートの機能と、それらにアクセスする方法に関する最新情報を提供します。

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

5
Meeker

SailsJSは、ES5構文を介して記述された単なるフレームワークであり、ES6をサポートする必要はありません。

通常どおりES6構文でプロジェクトを記述し、実行にはBabel\Traceur\whateverを使用できます。

私のフローは次のとおりです。

  • Sailsプロジェクトを作成します。
  • babeldevDependenciesとしてインストールします。
  • npm startpackage.jsonスクリプトを"start": "babel-node app.js"で更新します。

それでおしまい。コントローラ\モデル\ etcにES6\7コードを記述し、npm startコマンドを使用してサーバーを実行できます。 ES5構文で記述したのと同じように機能します。

Babel Transpiler

Babelノード

15
ghaiklor

代わりに、sails.js、expressなどのフレームワークでES6とnode.jsの互換性を確認する必要があります。

なぜなら、ついにnode.jsがjavaScriptをサーバーサイドコードに変更するからです。したがって、使用しているフレームワークは関係ありません。

ES6で帆を使用できます。

ES6の互換性チェックについては kangax.github.io

推奨:

v0.11.0以上

ノード v 4。以上

npm v2.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]
}
8
Vishnu Mishra

ヴィシュヌの答えはあなたをカバーしました。

最新のノードリリースで利用可能なES6機能の明示的なリストはここにあります https://nodejs.org/en/docs/es6/

デフォルトでNode.jsに付属しているES6機能はどれですか(ランタイムフラグは不要)?

  • let(厳密モードのみ)
  • const
  • 関数インブロック(厳密モードのみ)
    • V8 3.31.74.1以降、ブロックスコープの宣言は意図的に実装されており、厳密モードコードへの非準拠の制限があります。開発者は、v8がES6仕様への準拠を継続するにつれて、これが変更されることに注意する必要があります。
  • クラス(厳密モードのみ)
  • コレクション
  • 地図
  • WeakMap
  • セットする
  • WeakSet
  • 型付き配列
  • 発電機
  • 2進数と8進数のリテラル
  • オブジェクトリテラル拡張(省略形のプロパティとメソッド)
  • 約束
  • 新しい文字列メソッド
  • 記号
  • テンプレート文字列
  • 矢印関数
2
Fred Stark

sails-hook-babel フックがあります。以下で説明するように、それは私にはうまくいきませんが、より高い視認性が得られ、改善され、そしてこの答えがより適切になることを願っています。

現在、v6.0.1以降、ライブラリは、sailsフックの実行後にロードされたファイルに対して機能します。これは、たとえばES2015を使用する場合に君の config/routes.jsファイルの場合、構文エラーが発生します。しかし この問題 で示唆されているように、それは例えばのために働くはずです。 apiフォルダー内のファイル。

1
Tyler Collier