これは非常にややこしいので、この問題を詳しく説明しようと思います。
require.js
を使用してアプリケーションを作成しましたが、JavaScript コードが縮小されていない場合はすべて正常に動作します。
commons/js/config.js
require.config({.... , deps : ['startup']});
commons/js/startup.js
define('startup', ['router', 'xpto', 'i18n!nls/messages'], function(router, xpto, i18n) {....})
app/js/router.js (縮小)
define(…);
define(…);
define(…);
define(…);
define(…);
define("nls/messages", ….);
define("nls/pt-pt/messages", ….);
define("router", […., "i18n!nls/messages"], function (…,i18n) { … })
config.js
との両方startup.js
が最小化され、単一のサーブレットパス /commons に一緒にデプロイされます
app
がマップされ/app
、index.html があります。
<script data-config="/commons/js/config.js" src="/commons/libs/require/require.js"/>
また、 commons によってロードされるものがあり/app
ます。これにより、 からリソースをロードするコモンが作成されます。router.js
startup.js
startup.js
/app
startup.js
この問題は、依存関係からルーターをロードするときに発生します。router.js
複数の define ステートメントがあるため、i18n!nls/messages
in startup.js
deps は、 router.js に存在する define("nls/messages") の前にロードを開始し、エラーをトリガーしnls/messages.js not found
ます。
これを修正する方法はありますか?
前もって感謝します!