これは非常にややこしいので、この問題を詳しく説明しようと思います。
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.jsstartup.jsstartup.js/app
startup.jsこの問題は、依存関係からルーターをロードするときに発生します。router.js複数の define ステートメントがあるため、i18n!nls/messagesin startup.jsdeps は、 router.js に存在する define("nls/messages") の前にロードを開始し、エラーをトリガーしnls/messages.js not foundます。
これを修正する方法はありますか?
前もって感謝します!