Browserify z jQuery> = 2 produkuje „jQuery wymaga okna z dokumentem”
Używam browserify, aby spakować mój front-end javascript przy użyciu zależności typu CommonJS. Na przykład:
$ = require('jquery/dist/jquery'); // v2.1.0-beta2
_ = require('underscore');
Backbone = require('backbone');
Jednak kiedy browserify pakuje zależności, uruchamiam następujący błąd konsoli:
Error: jQuery requires a window with a document
Patrząc na kod jQuery, widzę, że próbuje go użyćthis
dla globalnegowindow
.
(function( window, factory ) {
....
}(this, function( window ) {
Ponieważ browserify zawija wszystkie zależności,this
jestobject
, niewindow
.
Co ciekawe, jQuery> = 2 powinno być kompatybilne z CommonJS. Problemem jest jednak sposób, w jaki browserify zawija zależności. Czy ktoś rozwiązał ten problem?