Javascript Grunt Browserify-在两个库加载之间执行脚本

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路由器。对于简单的脚本标记,我习惯于按顺序加

我使用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脚本:

$(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: '_'
          }