Próbuję użyć Bootstrap 3.0 z Browserify 5.9.1, ale otrzymuję następujący błąd:Korzystanie Bootstrap 3.0 z Browserify
Uncaught ReferenceError: jQuery is not defined
Co to jest poprawny sposób to zrobić?
Oto obowiązujących, odnośnych części mojego package.json:
{
...
"scripts": {
"bundle": "browserify main.js -o bundle.js --debug --list"
},
"dependencies": {
"backbone": "~1.1.x",
"jquery": "~2.1.x",
"underscore": "~1.6.x"
},
"devDependencies": {
"browserify": "^5.9.1",
...
},
...
}
Moduł, który wymaga bootstrap przedstawiono poniżej:
var $ = require('jquery');
var Backbone = require('backbone');
Backbone.$ = $;
require('../../../../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap');
Dwie rzeczy, które nie lubię tutaj:
- Bootstrap jest pobierany za pomocą Bower. AFAIK nie ma sposobu, aby uzyskać to za pomocą npm. To sprawia, że ścieżka jest bardzo długa i niezręczna. Czy istnieje sposób, aby uczynić Bootstrap npm przyjaznym?
- Bootstrap nie jest bezpośrednią zależnością tego modułu, jest to rodzaj wtyczki jQuery. Po załadowaniu tworzy po prostu niektóre procedury obsługi zdarzeń w dokumencie, aby obsłużyć zdarzenia z widżetów Bootstarp. Muszę wymagać, aby te procedury obsługi zdarzeń zostały utworzone. Czy to dobra droga?
Oczywiście po tym wszystkim nadal pojawia się błąd "jQuery nie jest zdefiniowany". Wyciągam włosy, próbując zmusić to do pracy. Proszę pomóż!
P.S. Wcześniej miałem wtyczkę "mysz-przeglądarka" na obrazku i szybko zdałem sobie sprawę, że korzystam z przeglądarki w wersji 4.x bez możliwości map źródłowych. To utrudniało debugowanie, więc szybko wyjąłem go z obrazu i uruchomiłem przeglądarkę prosto z npm.
Bootstrap nie został napisany jako moduł CommonJS. Będziesz musiał sam do tego dodać kod na płycie. – cvrebert
Cokolwiek jest warte, [Bootstrap jest już dostępny przez NPM] (http://blog.getbootstrap.com/2014/06/09/bootstrap-npm/). Pomogłoby to w pierwszej kolejności: nieprzyjaznej wymagającej ścieżce. :) –