私のプロジェクトでは、次の構成で RequireJS 2.2.0 を使用しています。
require.config({
baseUrl: "Scripts/js/kendo",
paths: {
"kendo.datepicker.min": "kendo.datepicker.min",
"jquery-ui": "../../lib/jquery-ui.min",
"modules": "../../modules",
"colorpicker": "../../lib/colorpicker",
"eye": "../../lib/eye",
"layout": "../../lib/layout",
"utils": "../../lib/utils",
"oraclemaps": "../../lib/oraclemapsv2"
},
shim: {
"kendo.datepicker.min": ["oraclemaps"],
"jquery-ui": ["oraclemaps"],
"colorpicker": ["jquery-ui"],
"eye": ["colorpicker"],
"layout": ["eye"],
"utils": ["layout"]
}
});
oraclemaps
jQueryを含むサードパーティのライブラリです。私は彼らのバージョンを使用しているので、Kendo と jQuery-UI の依存関係を shim で定義しました。oraclemaps にはjquery-ui, colorpicker, eye, layout, and utils
、前述の順序で必要なコンポーネントがあります。これもシムで定義しました。アプリケーションは正常に動作します。
問題はオプティマイザにあります。構成を使用すると、エラーが発生しましoraclemapsv2.js has more than one anonymous define
た。グーグルで調べたところ、これはjQuery Hammer(oraclemapsに含まれています)の問題であることがわかりました。アプリを実行すると、 につながりmismatched anonymous define() module
ます。
oraclemaps を入れexclude/excludeShallow
て HTML で読み込んでみましたが、 Script error for "jquery", needed by: jquery-ui, kendo.core.min
.
これが私のオプティマイザ構成です:
({
baseUrl: "../js/kendo",
paths: {
"kendo.datepicker.min": "kendo.datepicker.min",
"jquery-ui": "../../lib/jquery-ui.min",
"modules": "../../modules",
"colorpicker": "../../lib/colorpicker",
"eye": "../../lib/eye",
"layout": "../../lib/layout",
"utils": "../../lib/utils",
"oraclemaps": "../../lib/oraclemapsv2"
},
shim: {
"kendo.datepicker.min": ["oraclemaps"],
"jquery-ui": ["oraclemaps"],
"colorpicker": ["jquery-ui"],
"eye": ["colorpicker"],
"layout": ["eye"],
"utils": ["layout"]
},
include: ["../../lib/require.min"],
exclude: ["oraclemaps"],
name: "../../app",
out: "../build/app-built.js"
})
私は何をすべきか?何か案は?