webpackを使用して、第三者が使用するフレームワークをバンドルしています。このフレームワークは、複数のES6クラスを公開する必要があります。モジュラーな方法で構築すると、ファイルごとに1つのクラスを作成しました。私がしたいことは、これらのファイルをすべて一緒にビルドし、与えられた "名前空間"の下にバンドルさせることです。例:私は、ブラウザでこのライブラリをロードし、コンソールにfruit
を入力すると、webpackは複数のエントリファイルからクラスをエクスポートします
module.exports = {
entry: ['./src/apples.js', './src/oranges.js'],
output: {
path: './dist',
filename: 'fruit.js',
library: 'Fruit',
libraryTarget: 'umd'
}
}
しかし:
がexport class Apples {...}
oranges.js export class Oranges {...}
webpack.config.jsをapples.js 、私は果物の下でオレンジオブジェクトを見るだけです。最後のエントリファイルのみがライブラリに戻って公開されます。確かに、webpackのドキュメントではこの動作を確認しています。
すべてのモジュールは起動時に読み込まれます。最後のものがエクスポートされます。 http://webpack.github.io/docs/configuration.html#entry
私の現在の回避策は、一つのファイルからすべての私のクラスをエクスポートすることですが、それはかなり扱いにくいなってきました。
エクスポートされた複数のエントリファイルを使用してライブラリを設定するにはどうすればよいですか?それとも、ここで間違ったやり方をしていますか?
エクスポートするものを手動で定義するインデックスファイルをいくつか持たせたくないと言っていますか?私は完全にフォローしていません。 – loganfsmyth
@loganfsmythこれは部分的に私がこれについて間違った方法をしているのだろうと思っている理由です。私はリンゴとオレンジをインポートしたインデックスファイルを追加してから 'export {Apples、Oranges}'を実行しました。それは実行可能な解決策であるようです。 –
それは私が期待しているアプローチです。終わりには、モジュールにはいくつかのパブリックAPIとプライベートなものがあり、インデックスファイルはそれを中央の場所で定義できるものです。 – loganfsmyth