[]
        
(Showing Draft Content)

複数のnpmモジュール形式

Wijmo npmパッケージは、言語バージョン(ES5またはES2015)とモジュール形式(CommonJSまたはESM)の組み合わせである複数の形式でコンテンツを提供します。 インストールされたパッケージフォルダ内のすべての形式は、package.jsonファイル内の特別なフィールドによって参照される別々の.jsファイルによって表されます。Webpackのような最近のバンドラーは、バンドラーの設定に応じて、望ましい形式のパッケージファイルを使うことができます。 この機能を持たない場合、Bundlerはpackage.jsonのmainフィールドを使ってモジュール名を特定の.jsファイルに解決します。Wijmoパッケージでは、index.jsファイルは(最も互換性のある)ES5+CommonJS形式を参照します。

以下はpackage.jsonフィールドのリストと、それらがpackageフォルダーから表すファイル形式です。

  • mainES5+CommonJS(index.js)
  • moduleesm5wj-esm5ES5+ESM(es5-esm.js)
  • esm2015es2015wj-esm2015ES2015+ESM(es2015-esm.js)
  • es2015Cjswj-es2015CjsES2015+CommonJS(es2015-commonjs.js)

デフォルトでは、Webpackはmoduleフィールドを使用してパッケージ名を.jsファイルに解決します。存在しない場合は、デフォルトでmainフィールドになります。これはWebpack設定のresolve.mainFieldsオプションを使って望ましい形式を指定できます。 このオプションについての詳細はWebpackのドキュメントにあります。

フィールド名はすべてのモジュール形式に対して標準化されているわけではないので、私たちは人気のあるフレームワークで見られるいくつかの代替名を提供します(大部分はAngularです)。 その中で私達は名前がwj-で始まるWijmo特定のフィールドを提供します。そのような名前のフィールドは他のパッケージでは使用されないと想定されているので、Wijmoパッケージ以外では他のフィールド名を使用しながら、Wijmoパッケージ専用の優先モジュール形式を定義できます。例えば、webpack.config.jsファイルのこの設定は、Webpackに ES2015+ESM 形式のWijmoパッケージを含めるよう強制し、Wijmoパッケージにのみ影響します。

resolve: {
    mainFields: ['wj-esm2015', 'module', 'main'],
    ...
},