jQueryやKnockoutのような共通ライブラリの拡張子をBrowserifyとするのが最も良い方法は何ですか?browserifyで拡張機能を要求する正しい方法
たとえば、knockout-switch-case
のようなプロジェクトでは、グローバルko
(ノックアウト)変数はモジュール定義呼び出しに渡されません。
ノックアウトスイッチケース用AMDコードがある:
それは通常window
されるであろう、
root
にグローバルであることが
ko
(ノックアウト)を期待するが、Browserifyを使用する場合、それは
Object {}
ある
(function (root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['knockout'], factory);
} else {
// Browser globals
factory(root.ko);
}
}(this, function(ko) {
。
は、私はこのようなものでbrowserify-shim
を使用した例を試してみましたが、期待通り(それが良いモジュールダンスを持っているknockout-mappingための仕事、やったが)それは動作しませんでした:私は感じる
knockout:
path: VENDOR_PATH + '/knockout.js'
exports: 'ko'
depends:
jquery: '$'
をjQuery、Knockout、またはグローバルに依存するライブラリのその他の拡張機能を含めるためのかなり一般的なモジュール定義パターンであると期待しているので、私はかなり明白でなければならないものを見落とさなければならないかのように。あるいは、これは何かにかなり固有の問題です。ノックアウトスイッチケースがやっています。
いずれにしても、みなさまのご意見、ご感想をよろしくお願い申し上げます。
をあなたは 'ノックアウトスイッチ-case'なくKOので、自分自身をシムする必要があります次のようなものを試してみてください: 'shim(browserify()、{ 'ノックアウトスイッチケース':{ パス: './js/vendor/knockout-switch-case.js' 、exports:null 、 {knockout: 'ko'} } }) ' – nemesv