1

这很令人困惑,所以我将尝试详细解释这个问题。

我已经编写了一个应用程序,当 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.jsstartup.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/messagesin startup.jsdeps 将在 router.js 中的 define("nls/messages") 之前开始加载,这会触发nls/messages.js not found错误。

知道如何解决这个问题吗?

提前致谢!

4

0 回答 0