Как загрузить jQuery mobile в проект browserify?
Я пытаюсь загрузить jquery-mobile в свой проект browserify и получаю сообщение об ошибке, потому что this
относится к пустому объекту вместо window
объект. Browserify упаковывает jquery-mobile в обычную оболочку (function(require, module, exports){ ... }
) но this
не входит в сферу window
,
package.json
{
"dependencies": {
"animate.css": "^3.1.1",
"backbone": "^1.1.2",
"backbone-query-parameters": "git://github.com/jhudson8/backbone-query-parameters",
"backbone.marionette": "^2.3.1",
"backbone.radio": "^0.6.0",
"backbone.storage": "^0.1.0",
"backbone.syphon": "^0.5.0",
"bootstrap": "^3.3.1",
"browserify-swap": "^0.2.1",
"handlebars": "^1.3.0",
"jquery": "^2.1.3",
"jquery-mobile": "^1.4.1",
"lodash": "^2.4.1",
"nprogress": "^0.1.6"
},
"browser": {
"bootstrap": "./node_modules/bootstrap/dist/js/bootstrap.js",
"jquery-mobile": "./node_modules/jquery-mobile/dist/jquery.mobile.js"
},
"browserify-shim": {
"bootstrap": {
"depends": [
"jquery:jQuery"
]
},
"jquery": "$",
"jquery-mobile" : { "exports": "$.mobile", "depends": [ "jquery:$" ] }
},
"browserify-swap": {
"@packages": [
"underscore"
],
"dist": {
"underscore.js$": "lodash"
}
},
"browserify": {
"transform": [
"babelify",
[
"hbsfy",
{
"extensions": [
"hbs"
]
}
],
"browserify-swap",
"browserify-shim"
]
}
}
Сообщение об ошибке
jquery.mobile.js: 14931 Uncaught TypeError: Невозможно прочитать свойство 'jQuery' из неопределенного
Затем я нашел модуль
Я нашел moduleify после небольшого поиска и попытался использовать это в моем package.json для jquery-mobile, но получаю ошибку. Это моя обновленная конфигурация преобразования с помощью moduleify:
"browserify": {
"transform": [
"babelify",
[
"hbsfy",
{
"extensions": [
"hbs"
]
}
],
[
"moduleify",
[
"jquery.mobile"
]
],
"browserify-swap",
"browserify-shim"
]
}
Это дает мне ошибку с moduleify:
moduleify / index.js: 9 var rules = Array.isArray (псевдонимы)? псевдонимы: Object.keys(псевдонимы).map(fu
У кого-нибудь есть какие-либо предложения о том, как сделать this
ссылка window
? Я чувствую, что я на правильном пути, но не уверен, что делать дальше. Спасибо!
1 ответ
При первом подходе вы делаете:
"jquery-mobile" : { "exports": "$.mobile", "depends": [ "jquery:$" ] }
Я думаю, что вам нужно сделать:
"jquery-mobile" : { "exports": "$.mobile", "depends": [ "jquery:jQuery" ] }