Moment: [ESモジュール]インポートステートメントにjs拡張機能がありません

作成日 2018年07月22日  ·  5コメント  ·  ソース: moment/moment

問題の説明と再現手順:

src/moment.js<script type=module>ロードする場合:

ソースが「 http:// localhost :5000 / node_modules / moment / src / lib / utils / hooks」のモジュールの読み込みに失敗しました。

環境:

ESモジュールをサポートするブラウザ。

Documentation wontfix

最も参考になるコメント

src/下のすべてのインポートに.jsファイル拡張子を追加すると、最大105〜228のHTTPリクエストのチェーンに簡単につながる可能性があります(ロケールによって異なります)

esnext moduleプロパティとpackage.json追加すると、より適切な結果が得られる可能性があります。 Axel Rauschmayerによる一連の記事から、次のようなものが必要なようです。

  "esnext": "src/moment.js",
  "module": "./moment.esm.js",

(ここで、 ./moment.esm.jsは、CJSモジュール形式の代わりにESMに従って、新しいビルドターゲットになります)

全てのコメント5件

src/下のすべてのインポートに.jsファイル拡張子を追加すると、最大105〜228のHTTPリクエストのチェーンに簡単につながる可能性があります(ロケールによって異なります)

esnext moduleプロパティとpackage.json追加すると、より適切な結果が得られる可能性があります。 Axel Rauschmayerによる一連の記事から、次のようなものが必要なようです。

  "esnext": "src/moment.js",
  "module": "./moment.esm.js",

(ここで、 ./moment.esm.jsは、CJSモジュール形式の代わりにESMに従って、新しいビルドターゲットになります)

新しいesmビルドターゲットの場合は+1。 参考までに、 Ractive.jsは.mjsdistファイルを提供します

https://github.com/moment/momentjs.comでこれに関するドキュメントのPRを取り

ところで、HTTPリクエストの数が多い場合でも、デモで使用するブラウザビルドがあると便利な場合があります。デモでは、グローバルスクリプトの依存関係でHTMLを汚染する必要はありません(1つのスクリプトだけであることがわかっています)。 IIFEまたはUMDビルドがある場合はタグを付けますが、スクリプトタグは、それを使用するJSからはまだ適切ではなく、モジュール配布を行うためにクリーンです)。

@ brettz9既存のユーザーを壊さないPRを見ていきます。

このページは役に立ちましたか?
0 / 5 - 0 評価