使用Browserify在Node JS项目中包含JQuery Mobile

Gia*_*cia 6 javascript jquery node.js jquery-mobile browserify

我正在编写一个Node JS应用程序,我需要jQuery UI和jQuery Mobile.我正在使用Browserify将模块打包到一个js文件中.

我有以下代码在我的项目中包含jQuery和jQuery UI.

var jQuery = require('jquery');
require('jquery-ui-browserify'); 
Run Code Online (Sandbox Code Playgroud)

它有效.当我尝试使用require添加jQuery mobile时会出现问题:

require('./lib/jquery.mobile-1.4.0.min.js');
Run Code Online (Sandbox Code Playgroud)

或者使用脚本标记

<script src="/lib/jquery.mobile-1.4.0.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

我犯了同样的错误:

"未捕获的TypeError:无法设置未定义的属性'mobile'".

我明白我得到这个错误,因为jQuery mobile在Window中查找jQuery对象并且找不到它,但是如何修复它?npm上没有jQuery移动模块.

Mik*_*len 4

这是一个使用browserify-shim和 jquery + jquery mobile 的简单可运行演示: https: //gist.github.com/mchelen/a8c5649da6bb50816f7e

最重要的几行是:

package.json

 "browserify-shim": {
   "jquery": "$",
   "jquery-mobile" : { "exports": "$.mobile", "depends": [ "jquery:$" ] }
 }, 
Run Code Online (Sandbox Code Playgroud)

entry.js

var $ = require('jquery');
$.mobile = require('jquery-mobile'); 
Run Code Online (Sandbox Code Playgroud)