標題の件、なんでだろうねえとちょっとググったら、素晴らしい記事が。前読んだような気もするけど。。
http://yosuke-furukawa.hatenablog.com/entry/2016/05/10/111102
そもそも ECMAScript 2015 自身で定義されたのは構文だけなので、構文はともかく、どうやってモジュールを取ってくるかという Loader の部分がまだ決まりきっていません。
というのが原因らしい。そうするとBabelやrollup.jsとかのモジュールサポートってなんだろう?と思う。現時点の解釈・議論の結果を実装しているということなのかな?
それはさておき、nodeは膨大なcommonjsモジュールというエコシステムがあって、これをES2015 Modulesとどう相互運用するかというのが課題で、今も議論されているとのことだった。この記事は5月時点なので今10月だから少しは進展があったのだろうか。
それと上の記事には
ES Modules では Node.js が暗黙的にやっているようなスマートなパスの解決をしてくれない(現時点のローダーでは)ので気をつけましょう。
と書いてあった。.js
を補完はしないのが現時点での仕様らしい。あれ、でもrollup.jsでは補完してくれるな。。うーむ。どうなっているのだろう。やっぱりこのモジュール周りってかなり揺れがあって、今モジュール使っても最終的に決まった段階でコードの手直しが必要そうだなあ。。
なんかモヤモヤするところではあるね。ES2015 Moduleって。