6

jQuery UI と jQuery Mobile の両方が必要な Node JS アプリケーションを作成しています。Browserify を使用して、モジュールを単一の js ファイルにパックしています。

プロジェクトに jQuery と jQuery UI を含める次のコードがあります。

var jQuery = require('jquery');
require('jquery-ui-browserify'); 

そして、それは機能します。jQuery モバイルを追加しようとすると、require を使用して問題が発生します。

require('./lib/jquery.mobile-1.4.0.min.js');

またはスクリプトタグ付き

<script src="/lib/jquery.mobile-1.4.0.min.js" type="text/javascript"></script>

同じエラーが表示されます:

「Uncaught TypeError: 未定義のプロパティ 'mobile' を設定できません」.

jQuery mobile が Window で jQuery オブジェクトを探して見つからないため、このエラーが発生することは理解していますが、どうすれば修正できますか? npm には jQuery モバイル モジュールはありません。

4

4 に答える 4

4

これはbrowserify-shimと jquery + jquery mobile を使用した簡単な実行可能なデモです: https://gist.github.com/mchelen/a8c5649da6bb50816f7e

最も重要な行は次のとおりです。

package.json

 "browserify-shim": {
   "jquery": "$",
   "jquery-mobile" : { "exports": "$.mobile", "depends": [ "jquery:$" ] }
 }, 

entry.js

var $ = require('jquery');
$.mobile = require('jquery-mobile'); 
于 2014-11-24T23:17:35.197 に答える
0

私は同じ問題を抱えています。

現在、jquery と jquery-mobile 以外のすべてに browerify を使用しており、jquery と jquery-mobile のスクリプト タグをヘッダーに追加し、バンドルのスクリプト タグを本文の下部に追加します (つまり、require(".. /jquery") と require("../jquery-mobile") は不要になりました)。悪い解決策ですが、うまくいきます

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <link href="js/vendors/jquery.mobile-1.4.0.min.css" rel="stylesheet">
  <script src="js/vendors/jquery-1.10.2.min.js"></script>
  <script src="js/vendors/jquery.mobile-1.4.0.min.js"></script>
</head>

<body>
  <div class="Application">
  </div>
  <script src="js/app.built.js"></script>
</body>
</html>
于 2014-02-18T07:30:33.637 に答える