2016-07-07 9 views
0

私はいくつかのES2015モジュールで構成されたコンポーネントライブラリを作成しています。それぞれに比較的自蔵されていますが、統合テストと導入を容易にするための外部ビルドシステムがあります。 モジュールの1つに、コアモジュールとオプションのサブモジュールのセットがあります。コード構造が緩くようになります。これにより歴史的な理由にwebpack babel loaderが同じモジュールを2回インポートする

root 
    .\build\... 
    .\src 
    .\bundle1 
     .\build\... 
     .\src 
     .\core.js 
     .\submodules\ 
      .\a.js 
      .\b.js 

は、サブモジュールの数は、しばらくの間、それを展開する必要があり、コアモジュールに依存するので、少しであるが終わります循環依存性。前述のように、各モジュールは比較的自己完結型なので、独自のビルドシステムを持っています。ローカルビルドを使用すると、すべてが正常に表示されます。この問題は、「マスター」構築システムが使用されているときに明らかになります。同じビルドを起動すると、コアチャンクは2回生成されます。内部のサブモジュールは最初のインスタンスにアタッチしますが、2番目のインスタンスは実際にエクスポートされ、カード全体がかなり役に立たなくなります。 デベロッパーアプリケーションを作成していたときにバベルを使用していなかったため、このバグは表示されませんでした。ポイントを取得するためにそう長く取るため

謝罪は... 私の質問は、私はそれがこれを引き起こしている可能性が欠けていることを明らかに何かがあり、ある、またはバグがどこかにあるバベル/ WebPACKの-バベルあり-ローダ?

少し複雑なので、ここでソースをインライン化する代わりにthis reference projectを作成しました。上記のように、/ babelを使用していないため、/ developはこの問題を発生しません。 add-babelブランチが行います。

答えて

0

それは、はい、私はおそらく明らかになっていたはずのものを見逃していたことが分かります。 bundle1の設定はいくつかのレベルより高いので、明らかにcontextが必要です。 TBH私はcommonJSが使用されているが透明ではないときに動作するので、私はこれを完全に理解していません...

+0

このリンクは、動的インポートが関与するときにコンテキストが使用されることを示します。 –

+0

真。この場合、私の問題は 'context'が設定オプションであることを知らなかったことです。私はWebPackのすてきなドキュメントを責めます:p –

関連する問題