这很令人困惑,所以我将尝试详细解释这个问题。
我已经编写了一个应用程序,当 javascript 代码没有被缩小时require.js
,一切正常。
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
都被最小化并一起部署在单个 servletpath /commons 中
被app
映射,/app
并且有一个 index.html 与
<script data-config="/commons/js/config.js" src="/commons/libs/require/require.js"/>
同样在/app
我有一个router.js
将由 commons 加载的startup.js
。这将使公共startup.js
资源从/app
.
startup.js
从依赖项加载路由器时会出现问题。由于router.js
有多个定义语句,因此i18n!nls/messages
in startup.js
deps 将在 router.js 中的 define("nls/messages") 之前开始加载,这会触发nls/messages.js not found
错误。
知道如何解决这个问题吗?
提前致谢!