Я пытаюсь использовать Bootstrap 3.0 с Browserify 5.9.1, но получаю следующую ошибку:
Uncaught ReferenceError: jQuery is not defined
Каков правильный способ сделать это?
Вот часть моего пакета 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",
...
},
...
}
Модуль, который требует загрузки, показан ниже:
var $ = require('jquery');
var Backbone = require('backbone');
Backbone.$ = $;
require('../../../../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap');
Две вещи, которые мне не нравятся, следующие:
- Загрузочная загрузка загружается с помощью Bower. AFAIK нет способа получить его с помощью npm. Это делает путь очень длинным и неудобным. Есть ли способ сделать Bootstrap npm дружественным?
- Bootstrap не является прямой зависимостью этого модуля, это своего рода плагин jQuery. Когда он загружен, он просто создает некоторые обработчики событий в документе для обработки событий из виджетов Bootstarp. Мне нужно просто так, чтобы эти обработчики событий были созданы. Правильно ли это?
Конечно, после всего этого, я все равно получаю ошибку "jQuery не определен". Я вытаскиваю свои волосы, пытаясь заставить это работать. Пожалуйста, помогите!
P.S. Раньше у меня был плагин grunt-browserify на картинке и быстро понял, что он использует браузерную версию 4.x без возможности исходной карты. Это делало еще труднее отлаживать, поэтому я быстро взял его из картинки и запустил браузеру прямо с npm.