私はノードv6.0.0を使用していて、ES2016(ES6)を使用したいと思いました。しかし、私は「インポート」構文が機能していないことに気付きました。 ES2015でモジュラーコードを書くための「インポート」は基本的なものではありませんか? --harmony_modules
オプションを付けてnodeを実行しようとしましたが、それでも「import」について同じエラーが発生しました。これがコードです。
"import"のない作業コード
'use strict';
let sum = 0;
class Number {
addNumber(num1, num2) {
return num1 + num2;
}
}
let numberObj = new Number();
sum = numberObj.addNumber(1,2);
console.log("sum of two number 1 and 2 "+ sum);
"import"の付いたコードを動かさない:
server.js
'use strict';
import Number from "./Number";
let sum = 0;
let numberObj = new Number();
sum = numberObj.addNumber(1,2);
console.log("sum of two number 1 and 2 "+ sum);
Number.js
'use strict';
export default class Number {
addNumber(num1, num2) {
return num1 + num2;
}
}
サポートされているes6を見るために http://node.green/ もチェックしましたが、なぜ--harmony_modulesオプションが使えないのか理解できませんでした。助けてください。
まだ実装されていません。
ノード6.0.0は、ほとんどのES6機能が完成したバージョンのV8を使用します。残念ながら、モジュールはそれらの完成した機能の1つではありません。
node --v8-options | grep harmony
進行中調和フラグは完全には実装されておらず、通常は機能していません。
--es_staging(テストに適した調和機能を有効にします(内部使用のみ))
- ハーモニー(すべてのハーモニー機能を有効にする)
- harmony_shipping(出荷されているすべてのハーモニー機能を有効にする)
- harmony_object_observe( "harmony Object.observe"を有効にする(進行中))
- harmony_modules( "harmony modules"を有効にします(進行中))
- harmony_function_sent( "harmony function.sent"を有効にします(進行中))
- harmony_sharedarraybuffer( "harmony sharedarraybuffer"を有効にします(進行中))
- harmony_simd( "harmony simd"(進行中)を有効にする)
- harmony_do_expressions( "harmony do-expressions"を有効にします(進行中))
- harmony_iterator_close( "harmony iterator finalization"を有効にする(進行中))
- harmony_tailcalls( "ハーモニーテールコール"を有効にします(進行中))
- harmony_object_values_entries( "harmony Object.values/Object.entries"を有効にします(進行中))
- harmony_object_own_property_descriptors( "harmony Object.getOwnPropertyDescriptors()"(進行中)を有効にする)
- harmony_regexp_property( "harmony unicode regexpプロパティクラス"を有効にする(進行中))
- harmony_function_name( "調和関数名推論"を有効にする)
- harmony_regexp_lookbehind( "harmony regexp lookbehind"を有効にします)
- harmony_species( "harmony Symbol.species"を有効にする)
- harmony_instanceof( "harmony instanceof support"を有効にします)
- harmony_default_parameters( "harmony default parameters"を有効にする)
- harmony_destructuring_assignment( "harmony destructuring assignment"を有効にする)
- harmony_destructuring_bind( "harmony destructuring bind"を有効にする)
- harmony_tostring( "harmony toString"を有効にする)
- harmony_regexps(「調和正規表現拡張」を有効にする)
- harmony_unicode_regexps( "harmony unicode regexps"を有効にする)
- harmony_sloppy( "ずさんなモードでの調和機能"を有効にする)
- harmony_sloppy_let(「ずさんなモードでの調和を可能にする」を有効にする)
- harmony_sloppy_function( "ハーモニーずさんな機能ブロックスコープ"を有効にする)
- harmony_proxies( "ハーモニープロキシ"を有効にする)
- harmony_reflect( "harmony Reflect API"を有効にする)
- harmony_regexp_subclass( "harmony regexpサブクラス化"を有効にする)
これは@ Paulproの回答に対するコメントになるはずですが、コメントを投稿するのに十分な担当者がいません。
にとって Windows ユーザーに相当するコマンドは次のとおりです。
node --v8-options | findstr harmony
モジュールが実装されるまでは、コードを実行するために Babel "transpiler" を使うことができます。
npm install --save babel-cli babel-preset-node6
./node_modules/.bin/babel-node --presets node6 ./your_script.js
https://www.npmjs.com/package/babel-preset-node6 および https://babeljs.io/docs/usage/cli/ を参照してください。
デメリット:これには、余分なコンパイル時間など、さまざまなデメリットがあります。ただ言って。