Tag: js

  • JavaScript SyntaxError: The requested module ‘./notes.mjs’ does not provide an export named ‘default’から考える適切なimport/exportの使い方

    JavaScript SyntaxError: The requested module ‘./notes.mjs’ does not provide an export named ‘default’から考える適切なimport/exportの使い方

    背景 まずは該当するjavascriptコードを確認しよう。自作jsモジュール notes.mjsからいくつかの関数をインポートしたかった。 問題 しかしながら先ほどのjavascriptコードを実行しようとすると以下エラーが発生。 正直このシンタックスエラーの意味がよくわからなかった。「default」ってなんぞや・・・。 原因分析 自作javascriptモジュールがこちら。 そこでjavascriptといえば我らがMDNドキュメントを見ると目から鱗。javascriptにおけるimportの構文を全く理解できていなかったことが発覚。 先述のjavascriptコードは上記の1行目と同じ表現になるがこちらは以下のように説明されている。 defaultExport:モジュールからのデフォルトのエクスポートを参照する名前。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import つまりexport defaultで宣言したもののみがこの構文でimportできると理解(知らんけど)。 続いて2行目については以下のように説明されている。 name: インポートを参照するとき名前空間のように用いられるモジュールオブジェクトの名前。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import つまりjavascriptでは任意のモジュールに含まれる要素を任意のオブジェクト名でimportするときはこの表現を使え、と理解(知らんけど)。 解決方法 冒頭のimprot文の表記をちょこっと変えただけ。 参考リンク export – JavaScript | MDN