私はarangojsの著者で、ブラウザとnode.jsの両方で動作するように意図されていますが、使用されている環境(たとえばHTTPリクエストなど)によって内部実装の一部が異なる必要があります。webpackはライブラリ作成者としてブラウザのサブモジュールをロードする方法を教えてください。
のWebPACK 1のデフォルト設定は、ファイル拡張子として.web.js
代わりに.js
を使用してサブモジュールのブラウザの実装を提供することによって、具体的にWebPACKのを標的とせ.js
優先と.web.js
と.webpack.js
を含めるresolve.extensions
セットを持っていました。
しかし、このアプローチは脆弱で、Webpack 2のデフォルト設定ではこれらの2つが含まれなくなりました。別の方法は、構成内の代替を明示的に定義することですが、やはりこれは脆弱であり、ユーザー側で意識的な努力をします。
npm(例:arangojs-node
とarangojs-browser
)に同じモジュールの2つの異なるバージョンを提供することは、最も信頼性の高いアプローチであると思われますが、今や明示的に両方をインストールする必要があるためユニバーサルコードを必要に応じて2つのいずれかにロードする)。
ライブラリーの作者として私はユーザーのウェブパック構成を直接制御することはできません。実際には、ユーザーに構成を手動で更新する必要があります。
この状況を処理するための最良の方法は何ですか? Webpackコミュニティには、図書館の作家のための確立されたベストプラクティスはないようです。