187

ノード アプリケーションでは、次のようなハーモニー フラグを指定してノードを実行する必要があります。

node --harmony app.js

このハーモニーフラグは何ですか?それは何をしますか、なぜそれなしではアプリを実行できないのですか?

ノードのコマンドライン オプション ( node --help) を調べてみましたが、詳細も提供されません。ノードのドキュメントも役に立ちませんでした。

4

5 に答える 5

141

タイプman nodeすると、ハーモニー フラグに次のように表示されます。

 --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同様です。ファイルが調和なしで実行されない理由は、おそらく、新しい ECMAScript 6 標準の下位互換性のない機能 (ブロック スコープ、プロキシ、セット、マップなど) を使用しているためです。app.js

于 2012-11-12T21:45:52.483 に答える
13

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

于 2017-05-15T11:04:06.477 に答える
5

ノードのドキュメントに記載されているように、 --harmony フラグを使用すると、ES6 の安定していないがすぐに安定する機能が有効になります。

Node.js の --harmony フラグの現在の動作は、ステージングされた機能のみを有効にすることです。結局、これは --es_staging のシノニムになりました。前述のように、これらはまだ安定しているとは見なされていない完成した機能です。特に本番環境で安全にプレイしたい場合は、デフォルトで V8 に出荷されるまで、したがって Node.js に出荷されるまで、このランタイム フラグを削除することを検討してください。これを有効にしておくと、V8 がセマンティクスを変更して標準に厳密に従うようになった場合に、Node.js のさらなるアップグレードでコードが壊れることに備える必要があります。

于 2016-07-10T04:03:04.657 に答える
5

ノード js で調和モジュールを有効にします: http://wiki.ecmascript.org/doku.php?id=harmony:modules

于 2012-11-12T21:44:43.837 に答える