問題
正常に完了する grunt ビルドがあり、他のライブラリに依存するものを除いて、ほとんどのライブラリが利用可能です。
例
たとえば、underscore-string は underscore に依存し、_.string として underscore 名前空間にアタッチされますが、その関数はアプリでは使用できません。これは、moment.range と同じ問題です。
RequireJS 構成
{
"name": "app",
"dir": "client-compress",
"baseUrl": "client-dist",
"preserveLicenseComments": true,
"paths": {
"underscore": "bower_components/underscore/underscore",
"backbone": "bower_components/backbone/backbone-min",
"requireLib": "bower_components/requirejs/require",
"moment": "bower_components/moment/moment",
"string": "bower_components/underscore.string/lib/underscore.string",
"momentrange": "bower_components/moment-range/lib/moment-range"
...
},
"shim": {
"backbone": { "exports": "Backbone", "deps": ["underscore", "jquery"] },
"underscore": { "exports": "_" },
"string": { "deps": ["underscore"]},
"moment": {"exports": "moment"},
"momentrange": {"deps": ["moment"]}
...
},
"include": [
"requireLib",
"underscore",
"moment",
"string",
"backbone",
"momentrange"
...
]
}
ノート
アプリケーションは最適化されていなくても問題なく動作し、文字列と範囲のライブラリは両方とも最終的なビルド ファイルに含まれています。私の推測では、ビルド ファイルが読み込まれた後は、アンダースコア ライブラリとモーメント ライブラリをアタッチできません。