首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequireJS加载未优化的文件

RequireJS加载未优化的文件
EN

Stack Overflow用户
提问于 2013-07-13 05:19:01
回答 1查看 139关注 0票数 0

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

代码语言:javascript
复制
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...

由于某些原因,当我加载登录时,page...it仍然跟踪公共文件(main.js)中已经包含的依赖项。因此,我对jquery、下划线等有单独的请求。

我是这样使用multi-page shim example的:

代码语言:javascript
复制
require(['main'], function (main) { require(['login']) });

你知道为什么不使用公共模块来查找这些依赖关系吗?

EN

回答 1

Stack Overflow用户

发布于 2014-05-01 22:47:13

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

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

另外,我也尝试过https://github.com/requirejs/example-multipage-shim,对我来说,它开箱即用。当使用www-built文件夹中的输出时,RequireJS实际上只会执行两个HTTP请求来获取它需要的内容。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17624154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档