「module」package.jsonフィールドは何のためのものですか?


111

一部のnpmパッケージ(たとえば、vue)には、pkg.modulepackage.jsonにフィールドがあることがわかりました。"module"公式のnpmプロパティですか、これはある種の規則ですか?これに関するドキュメントはどこにありますか?何のために?esnextパス?バンドルされていないモジュールパス?


2
: - ECMAScriptのモジュールのための規則は、ここにESMの識別に異なるアプローチで読ん良いことだhackernoon.com/...
hackerrdave

回答:


118

"module"公式のnpmプロパティですか 、これはある種の規則ですか?

これは提案ですが、事実上の使用法によりサポートされる可能性があります。

これに関するドキュメントはどこにありますか?

実際、そこにあり、それはここで見つかり、後でここから削除されます

何のために?

ノードでのES6モジュールの相互運用性。追加の議論はここここにあります。そして、リッチ・ハリスのブログ記事で、それについてもっと話しています。


1
WebPackはこれに関するドキュメントをどこかに持っていますか、それともロールアップだけですか?
tech4him 2017

1
ここに追加したようです:webpack.js.org/guides/author-libraries/#final-steps
tech4him

43

これは、ESM(ECMAScriptモジュール)を検出するためのバンドルツールで使用されます。ロールアップのドキュメントはかなりよくそれを言います:

あなたの場合はpackage.jsonファイルも持っているmodule分野を、のようなES6-対応ツールロールアップWebPACKの2がしますES6モジュールのバージョンをインポートする直接。

Rollup 1.0に関するこの記事では、別の言い方をしています。

このmainフィールドは、使用しているノードユーザーrequireにUMDバージョンが提供されることを確認します。このmoduleフィールドは公式のnpm機能ではありませんが、ライブラリのESMバージョンをインポートする方法を指定するための、バンドル業者の間で共通の規則です。

の詳細についてpkg.moduleは、Rollup Github WikiおよびWebpack Docsを参照してください


1
mainライブラリのUMDバージョンの縮小バージョンである必要がありますか?またはそれは非縮小のものであるべきですか?どうmoduleですか?ユーザーはそのバンドラー(Webpack、Parcelなど)を使用し、ES6モジュールのエクスポートでソースファイルを使用することにより、バンドラーは平均的なツリーの揺れを修正できるので、モジュールを縮小しないでください。
tonix
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.