Javascript Grunt Browserify-在两个库加载之间执行脚本
我使用grunt browserify处理服务器端的请求,然后再向客户端提供唯一的JS 像exposed一样,我想用一个垫片加载我的库,并将它们放在一个“vendor.js”中,然后加载我的应用程序的js,执行requires并将结果放在一个“app.js”中,然后使用concat将它们放在客户端的“main.js”文件中 问题是我使用的是jquery、jquery mobile和主干网。为了使jqm和主干网一起可用,我必须在加载jqm库之前禁用jqm路由器。对于简单的脚本标记,我习惯于按顺序加载jQuery,然后是禁用jQM路由器、jQM和主干的javascript 现在我不知道如何告诉browserify以相同的顺序加载脚本。这是我的Grunfile(browserify部分): 下面是jquery.mobile.config脚本:Javascript Grunt Browserify-在两个库加载之间执行脚本,javascript,jquery-mobile,backbone.js,gruntjs,browserify,Javascript,Jquery Mobile,Backbone.js,Gruntjs,Browserify,我使用grunt browserify处理服务器端的请求,然后再向客户端提供唯一的JS 像exposed一样,我想用一个垫片加载我的库,并将它们放在一个“vendor.js”中,然后加载我的应用程序的js,执行requires并将结果放在一个“app.js”中,然后使用concat将它们放在客户端的“main.js”文件中 问题是我使用的是jquery、jquery mobile和主干网。为了使jqm和主干网一起可用,我必须在加载jqm库之前禁用jqm路由器。对于简单的脚本标记,我习惯于按顺序加
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
// Remove page from DOM when it's being replaced
$('div[data-role="page"]').on('pagehide', function (event, ui) {
$(event.currentTarget).remove();
});
});
简而言之,我试着这样做:但是使用grunt browserify而不是requirejs,我找到了一个黑客解决方案,它包括在jquery mobile的开始处连接jqm conf脚本,然后再对其进行浏览
concat: {
test: {
options: {
separator: ';'
},
src : ['client/lib/jqm/jquery.mobile-config.js', 'client/lib/jqm/jquery.mobile-1.4.2.js'],
dest: 'client/lib/jquery.mobile-1.4.2.configured.js'
}
...
browserify: {
lib: {
src: ['client/lib/*.js'],
dest: 'client/build/temp/lib.js',
options: {
shim: {
jquery: {
path: 'client/lib/jquery-1.11.0.js',
exports: '$'
},
'jquery.mobile': {
path: 'client/lib/jquery.mobile-1.4.2.configured.js',
exports: '$',
depends: {
jquery: '$'
}
},
underscore: {
path: 'client/lib/underscore.js',
exports: '_'
},
backbone: {
path: 'client/lib/backbone.js',
exports: 'Backbone',
depends: {
jquery: '$',
underscore: '_'
}
这是可行的,避免了直接修改任何库,但感觉非常粗糙。如果有人能想出更好的办法,那就太好了
concat: {
test: {
options: {
separator: ';'
},
src : ['client/lib/jqm/jquery.mobile-config.js', 'client/lib/jqm/jquery.mobile-1.4.2.js'],
dest: 'client/lib/jquery.mobile-1.4.2.configured.js'
}
...
browserify: {
lib: {
src: ['client/lib/*.js'],
dest: 'client/build/temp/lib.js',
options: {
shim: {
jquery: {
path: 'client/lib/jquery-1.11.0.js',
exports: '$'
},
'jquery.mobile': {
path: 'client/lib/jquery.mobile-1.4.2.configured.js',
exports: '$',
depends: {
jquery: '$'
}
},
underscore: {
path: 'client/lib/underscore.js',
exports: '_'
},
backbone: {
path: 'client/lib/backbone.js',
exports: 'Backbone',
depends: {
jquery: '$',
underscore: '_'
}