需要JS加载未优化的文件

RequireJS loading unoptimized files

本文关键字:文件 优化 JS 加载 需要      更新时间:2023-09-26

我已经成功地优化了我的项目:

main.js
----------------
main.js
lib/jquery/jquery.js
lib/underscore/underscore-min.js
lib/aura/base.js
lib/aura/core.js
etc...
login.js
----------------
models/page.js
models/user.js
helpers/permissions.js
helpers/pager.js
login.js
etc...

出于某种原因,当我加载登录页面时。。。它仍然跟踪公共文件(main.js)中已经包含的依赖项

我使用的是这样的多页填充示例:

require(['main'], function (main) { require(['login']) });

有什么想法为什么不使用公共模块来查找这些依赖关系吗?

在一个使用RequireJS的Play Framework项目中,我一直在与同样的奇怪行为作斗争。问题的原因是顶级模块正在调用require,并且提供了不正确的模块名称。不幸的是,这个不正确的模块名称可能会被RequireJS加载,并导致整个过程进入错误的依赖关系图,最终我对每个文件都提出了单独的请求。

我想这只是Play Framework项目的潜在错误,因为所有单独的JavaScript文件实际上都是部署的一部分(当你不改变构建配置时),而不仅仅是单个(或在某些情况下是多个)优化的文件,这些文件已经内联了所需的一切。

另一方面,我也和https://github.com/requirejs/example-multipage-shim对我来说,它是开箱即用的。当使用www构建的文件夹中的输出时,RequireJS实际上只会执行两个HTTP请求来获取所需内容。

对于任何看到这个问题的人,我建议查看RequireJS优化器的输出,并查看RequireJS模块的名称(即define调用中潜在依赖项前面的字符串参数)。通过为UglifyJS启用代码美化,可以使优化器的输出更具可读性https://github.com/jrburke/r.js/blob/master/build/example.build.js#L155用于配置设置。