1. ホーム
  2. javascript

[解決済み] node --harmony` は何をするのですか?

2022-04-15 14:16:59

質問

あるnodeアプリケーションで、次のようなharmonyフラグを立ててnodeを実行する必要がありました。

node --harmony app.js

このharmonyフラグとは何でしょうか?また、なぜこのフラグがないとアプリが実行できないのでしょうか?

nodeのコマンドラインオプションを調べてみたのですが、( node --help )ですが、こちらも詳細は不明です。Nodeのドキュメントも何の役にも立ちませんでした。

解決方法は?

タイピング 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 など) から このブログの記事 とあるように、harmony は ECMAScript 6 の新機能を有効にする言語であるようです。harmony なしでファイルが実行されない理由は、次のとおりです。 app.js はおそらく新しい ECMAScript 6 標準の後方互換性のない機能 (ブロック・スコーピング、プロキシ、セット、マップなど) を使用していると思われます。