大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Node.jsでimport/exportを試してみた。

著者:高木信尚
公開日:2018/05/29
最終更新日:2018/05/29
カテゴリー:技術情報

高木です。おはようございます。

あいかわらずJavaScriptと格闘しています。
今回挑戦したのはimport/exportです。

以前にも書いたと思いますが、私はJavaScriptの実行環境としてNode.jsを使っています。
今回もNode.jsでimport/exportを試してみたわけですが、これが結構はまりました。

まず、Node.jsのバージョンですが、8.11.1を使っています。
最新版は8.11.2 LTSのようなので、ひとつ前のバージョンということになるかと思います。

とりあえず、ネット上で調べた情報を頼りに、以下のようなスクリプトを書いてみました。

一見うまくいきそうなのですが、importのところで下記のようなエラーを吐いてうまく動いてくれません。

いろいろ調べたところ、mozillaのドキュメントに

ユーザーが明示的にこの機能を有効にしなければなりません。

とありました。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import#%ブラウザ互換性

なるほど、何か実行オプションが必要なんだろうと思い、node -hで調べましたがよくわかりません。
結局たどり着いた答えは、Node.jsでimport/exportを使うには、次の2つが必要になるとのことです。

  1. 拡張子を.mjsにする。
  2. nodeコマンドの実行オプションに–experimental-modulesを付ける。

これで、下記のような警告というかメッセージが出ますが、何とかうまくいきました。

ところで、importする際には、ファイル名の拡張子は省略してもかまわないようですね。
一定のルールに基づいて補ってくれるようです。

experimentalだというので、import/exportを本当に使って大丈夫か少し不安になりました。
念のため、ECMAScriptの最新規格である2017年版を調べてみると、ちゃんとimport/exportの記述があります。
これで一安心です。
今使っているNode.jsではexperimentalかもしれませんが、近いうちに正式な機能となるはずです。

今回悩んだあたり、JavaScriptのベテランの方なら一蹴できるのかもしれませんが、初心者の私にとっては一歩一歩確かめながら進むしかありません。
またひとつ勉強になりました。

    上に戻る