如何让jquery-mobile和dependend插件与require.js一起使用?

fre*_*ent 2 jquery asynchronous jquery-mobile requirejs

我正在第一次尝试实现Require.js,虽然我正在尝试遵循这两个教程(这里这里),但我并没有完全理解它.这是我到目前为止:

在我的索引文件中:

<script type="text/javascript" data-main="../js/main" src="../js/libs/require/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

main.js里面

require.config({ baseUrl: "../js/",
  paths: {       
   "jq-loader":    "libs/jquery/jquery",
   "jqm-loader":   "libs/jquery-mobile/jquery-mobile",
   "someplug":     "libs/someplug/somplug",
   }
 });
// define app and dependencies??? - not sure what goes here? All plugins I'm using?
require(['app','order!libs/jquery/jquery', 'order!libs/jquery-mobile/jquery-mobile'], 

function(App){
    App.start();
    });
Run Code Online (Sandbox Code Playgroud)

jquery.js里面

 define([ 'order!libs/jquery/jquery.min' ], function(){ return $; });
Run Code Online (Sandbox Code Playgroud)

jquery.js里面(取决于Jquery)

 // ERROR here in "mobile" being undefined
 define(['order!libs/jquery-mobile/jquery-mobile.min'], function(){ return mobile; });
Run Code Online (Sandbox Code Playgroud)

app.js

define([ 'jq-loader', 'jqm-loader'], function($, mobile){
    var start = function() {
    $(document).ready(function() {
        alert("Hello world!");
        })
      }
     return {"start":start};
   });
Run Code Online (Sandbox Code Playgroud)

我很高兴我到目前为止已经做到了,但我真的很想看到所有的一切.现在,我收到错误移动设备未在我的jquery-mobile.js文件中定义.我想因为Jquery-Mobile并不真正属于它...

有人可以解释一下吗?非常感谢!

编辑:
这是我的示例设置的链接

sle*_*ker 6

在我看来,那时jqm对jquery一无所知.所以你得到一个错误.如果要使用这样的加载器,可能需要在一个require块中加载jquery.比回调加载jqm使用一个更多的要求.但是你不需要这些包装器加载器来加载jqm的jquery.

在主要的js中,首先加载jquery,而不是jqm.那就足够了.您也不必在app.js中定义它们.

Main.js应该类似于:

require.config({ baseUrl: "../js/",
  paths: {  
   "app": "path to app",
   "jquery":    "path to jquery",
   "jqm":   "path to jqueryMobile",
   "someplug":     "libs/someplug/somplug",
   }
});
require(['order!jquery', 'order!jqm', 'app'], 

function(jquery, jqm, App){
    App.start();
    });
Run Code Online (Sandbox Code Playgroud)

还有你的app.js:

define([], function(){
  var start = function() {
  $(document).ready(function() {
    alert("Hello world!");
  })
  }
  return {"start":start};
  });
Run Code Online (Sandbox Code Playgroud)

请告诉我它是否无效并在某处上传您的来源.问候.