0

broweserifyjqueryおよびを使用してプロジェクトを構築していjquery-uiます。すべてのライブラリは でプルダウンされましたnpm。これが私が mybrowserify-shimを使って引き込む方法ですjquery' and 'jquery-ui:

  "browserify": {
    "transform": [ "browserify-shim" ]
  },
  "browser": {
    "jquery": "./node_modules/jquery/dist/jquery.js",
    "jquery-ui": "./node_modules/jquery-ui/jquery-ui.js"
  },
  "browserify-shim": {
    "jquery": "$"
  }

すべてが正常に機能しjquery-ui.jsますが、コードの最初の行を確認すると、

var jQuery = require('jquery');

このコード行はどのように解決されていますか? debuggerこの後にステートメントを入れると、jquery必ず解決されます。シムの名前も変更しましたがjquery、それでも解決されました。それはどのように起こっていますか?

4

2 に答える 2

3

短い答え:あなたのpackage.json依存関係

長い答え: 私もそれらの npm モジュールを使用しています。そのjquery-uiパッケージはrequire、内部の依存関係に合わせて再調整されたようです。jquery-ui core.jsお気づきのとおり、 is:の最初の行は、プロジェクトの npm 依存関係でvar jQuery = require('jquery');呼び出されるモジュールを探します。jqueryそれは私が持っているもののようなものによって処理されますpackage.json:

"dependencies": {
    "jquery": "^2.1.1",
    "jquery-ui": "^1.10.5",
}

browserify部品 に加えて:

"browserify": {
    "transform": [ "browserify-shim" ]
},
"browser": {
    "jquery": "./node_modules/jquery/dist/jquery.min.js",
    "jq-ui": "./node_modules/jquery-ui/jquery-ui.js"
},
"browserify-shim": {
    "jquery": "$",
    "jq-ui": {
        "exports": "jq-ui",
        "depends": [ "jquery:jQuery" ]
    },
}

私が把握していないのは、他のクライアント側スクリプトで jQuery UI コンポーネントを使用できるかどうかです。

以下も参照してください: * Browserify を jquery および非 npm プラグインで使用する * Browserify を jQuery プラグインで使用する

于 2014-09-18T08:30:03.793 に答える