2012-11-12 4 views
146

ノード・アプリケーションは次のように、調和フラグでノードを実行するために私を必要としています`node --harmony`は何をするのですか?

node --harmony app.js 

この調和フラグとは何ですか?それは何をし、なぜアプリはそれなしで動かすことができないのですか?

私はノードのコマンドラインオプション(node --help)を調べてみましたが、詳細は表示されません。ノードのドキュメントには何の助けもなかった。

答えて

109

ハーモニーフラグでこれを持っている:

--harmony_typeof (enable harmony semantics for typeof) 
     type: bool default: false 
--harmony_scoping (enable harmony block scoping) 
     type: bool default: false 
--harmony_modules (enable harmony modules (implies block scoping))  
     type: bool default: false 
--harmony_proxies (enable harmony proxies)  
     type: bool default: false 
--harmony_collections (enable harmony collections (sets, maps, andweak maps)) 
     type: bool default: false 
--harmony (enable all harmony features (except typeof)) 
     type: bool default: false 

ので--harmonyは、すべての調和の特徴(例えば--harmony_scoping--harmony_proxiesを可能にするためのショートカットですなど)。this blog postから、ECMAScript 6の新機能をハーモニーで使用できるようになりました。ファイルがハーモニーなしで実行されない理由は、おそらくapp.jsが新しいECMAScript 6標準(ブロックスコープ、プロキシ、セット、マップなど)の非後方互換機能を使用しているからです。

+43

[Harmonyは新しいECMAscriptに使用される名前です](https://mail.mozilla.org/pipermail/es-discuss/2008-August/006837.html)と言及する価値があります。ハーモニーネームスペースには、[その言語の提案](http://wiki.ecmascript.org/doku.php?id=harmony:harmony)の機能が含まれています。 – eis

+0

ありがとう!今はすべて意味があります。 Btw。 Windowsの 'man node'に相当するものは何ですか? :) – jsalonen

+3

@jsalonenここには物語を得るために '> node --v8-options'を実行することができます – eis

0

ノードドキュメントは、--harmonyフラグはNode.jsの上--harmonyフラグの現在の動作は機能だけを上演できるようにすることですES6

の非安定しているが戸部すぐ厩舎の機能を有効にします。結局、これは--es_stagingの同義語になりました。上記のように、これらはまだ安定していないと考えられている完成した機能です。特にプロダクション環境で安全にプレイしたい場合は、このランタイムフラグがデフォルトでV8に出荷され、その結果Node.jsに送られるまで、ランタイムフラグを削除することを検討してください。これを有効にしておくと、V8のセマンティクスが標準に準拠するように変更された場合、コードを破棄するためにNode.jsのアップグレードを準備する必要があります。

0

古いバージョンのnodejでECMAScript 6の機能を実行する場合は、--harmony flagを使用できます。 ノードの最新バージョンはES6をサポートしているので、--harmonyフラグ

関連する問題