私はライブラリAとライブラリBを開発中です.Aに応じてBをBにします。 browserifyを使用して、私のブラウザで私が行うことができます:私はまた、唯一のAに依存しており、AがBに含まれている場合、それはからアクセスできなくなり、ライブラリCを開発していますようグローバルスコープのrequireから依存関係をまとめてロードするようにブラウザに指示します。
var A = require("A");
var B = require("B");
私は独立して、それらを束ねるしたいと思いますC、AがBとCの場合は重複があります。
だから私は、ライブラリA browserifyingで始まる:
browserify -r ./src/A.js:A -o build/A.js
完全に正常に動作し、私はAを配布することができますし、他の人はそれで自分のアプリケーションを開発することができます。
その後、私は図書館B browserify:
browserify -r ./src/B.js:B -o build/B.js
をしかし、私は今、だから私は防ぐことbrowserifyから-iオプションを使用してブラウザに独立してロードされ、再びB.とともにパッケージ化され、2回を持っていますそれが含まれてから:
browserify -r ./src/B.js -o build/B.js -i A
しかし、BがAを必要とすると、ライブラリの代わりに空のオブジェクト{}が得られます。 ライブラリAは、依然としてrequire( "A")を実行することによってグローバルスコープから利用可能です。
-xで外部化しようとしましたが、グローバルスコープからライブラリを要求することはできません。
私は、生成されたBの出力をハッキングして、以前の要求からAを得るようにモジュールの解像度を強制することで、私が望む振る舞いを得ることができましたが、簡単な解決策があると思います。それを見つける。
私はそれを見てのbrowserify 2.18.1
-x、--externalはあなたが探しているものである必要があります。参照してください:https://github.com/substack/node-browserify#multiple-bundles – Epeli
@エペリ、私は - 外部オプションを使ってみましたが、AがまだBにあるので、何の効果もないようです。モジュール名: 'browserify -x A -r ./src/B.js:B -o build/B。js' またはファイルを指していることにより: 'browserify -x node_modules/A/A.js -r ./src/B.js:B -o構築/ B.js' 任意のアイデア何を-x有効な入力として受け入れることができますか? 私の問題は[browserifyのGitHub](https://github.com/substack/node-browserify/issues/404) – Olivier
afaikでこの問題に関連しているようです.jsファイルとモジュール名へのパスを受け入れるべきです。 – Epeli