1

我使用RequireJS开发了一个应用程序,没有优化层 - 需要单独下载每个文件。这是外部标记:

<!DOCTYPE html>
<html lang="en">
  <head>
     <script type="text/javascript">
       var require = {
         //some basic config
       };
     </script>
  </head>
  <body>
     <!--snip-->
  </body>
  <script type="text/javascript" data-main="main" src="scripts/lib/require.min.js"></script>
</html>

这个功能没有任何问题,但是对于 100 多个文件,加载时间真的很长。所以,是时候介绍r.js 优化了!我使用 node 和 r.js 创建一个组合文件,然后更改data-main="main"data-main="_build/main".

我收到以下错误:

错误:不匹配的匿名 define() 模块:(crossroads.js 的整个主体)

想法:

我仍在挖掘,但希望有人可以在这里为我节省一些时间。

4

1 回答 1

1

TL;博士; 使用未缩小版本的 crossroads.js,因为您正在构建 r.js,它已经压缩了源文件。

crossroads 使用未命名的定义,并被包装到自定义UMD(通用模块定义)中。由于 r.js 无法添加正确的模块名称,因此缩小版本将无法正常工作。

缩小前:

(function(define){define(["signals"], ...

缩小后:

(function(a){a(["signals"], ...

r.js 不知道是什么a意思,它只寻找define调用。

于 2013-01-17T01:25:03.903 回答