いくつかのnpmパッケージ( vueの例 )でpackage.jsonにpkg.module
フィールドが含まれているのを見ました。 "module"
は公式のnpmプロパティですか、それとも何らかの規則ですか?これに関するドキュメントはどこかにありますか?何のために? esnextパス?バンドルされていないモジュールパス?
これは、ESM(ECMAScriptモジュール)検出用のバンドラーツールによって使用されます。 Rollup documentation はそれをかなりうまく言っています:
package.json
ファイルにもmodule
フィールドがある場合、 Rollup や webpack 2 などのES6対応ツールは ES6モジュールバージョンをインポート になります。
Rollup 1.0のこの記事 は別の言い方をしています:
main
フィールドは、require
を使用しているNodeユーザーにUMDバージョンが確実に提供されるようにします。module
フィールドは公式のnpm機能ではなく、ライブラリのESMバージョンをインポートする方法を指定するためのバンドラー間の一般的な規則です。
pkg.module
の詳細については、 Rollup Github Wiki および webpack Docs を参照してください。