私は browserify を使用して、CommonJS スタイルの依存関係を使用してフロントエンドの JavaScript をバンドルしています。たとえば、私は持っています:
$ = require('jquery/dist/jquery'); // v2.1.0-beta2
_ = require('underscore');
Backbone = require('backbone');
ただし、browserify が依存関係をバンドルすると、次のコンソール エラーが発生します。
Error: jQuery requires a window with a document
jQuery コードを見るとthis
、 globalに使用しようとしていることがわかりwindow
ます。
(function( window, factory ) {
....
}(this, function( window ) {
browserify はすべての依存関係をラップするため、this
はobject
ではなくwindow
です。
興味深いのは、jQuery >= 2 が CommonJS と互換性があることです。ただし、問題は、browserify が依存関係をラップする方法です。誰かがこの問題を解決しましたか?