3

我正在尝试使用requireJs optimizerr.js(此处)为生产准备应用程序的第一次尝试。

我可以让一切正常工作,并且可以将我所有的 js 丑化到一个main.js文件中,但是一个文件,很多问题......

基本问题

  1. Javascript buildlayer requireJs 在说什么?我的单个文件?

现在我只优化了一个模块main.js,它将所有依赖项捆绑到一个文件中(jquery、jquery-mobile 以及启动我的应用程序所需的所有其他内容)。

高级问题
在一页上说我正在使用一个用jqplot完成的图表,它使用 xy 额外的 javascript 文件,我在我的应用程序的其他任何地方都不需要。

  1. 我需要做些什么来防止这些文件出现在我的main.built.js文件中?
  2. 我是否需要graph在使用图表的页面上定义一个新模块,然后优化此模块以将 xy 文件连接到 graph.built.js

非常先进
我的页面是由小工具组成的 = HTML/JS/CSS 的自主块,我在整个应用程序中重复使用这些块,并且可以使用 JSON 对其进行自定义。

  1. 如果通过插件加载小工具requireJS !text,我的 HTML 文件将在哪里“优化”为大型单个 HTML 文件?
  2. 如果我只想在每个页面上加载我需要的小工具,我是否必须为每个页面创建一个包含每个小工具依赖项的模块,然后优化module index_pagemodule page_with_graph等以确保只加载需要的内容?
  3. 如果这样做,是否会在每个页面上重新请求小工具而不是缓存?

感谢您提供一些见解!

4

1 回答 1

1

伟大的客人!

基本问题:

Javascript buildlayer requireJs 在说什么?我的单个文件?

首先,我们把 buildlayer 改写为“bundle”,这样更客观。所以它的连接模块集。它可以是单一的——如果你将你的模块放在一个构建中,或者如果你想为某些页面构建指定的构建,它可以是几个。

进阶问题:

我需要做些什么来防止这些文件出现在我的 main.built.js 文件中?

首先,这是我在书签中的一个非常有用的链接 - https://github.com/jrburke/r.js/blob/master/build/example.build.js

简而言之,您可以在r.js配置中配置模块部分,管理包含排除规则以达到目标

我是否需要在我正在使用图表的页面上定义一个新的模块图表,然后优化此模块以将 xy 文件连接到 graph.built.js

您可以只使用shim并在其他模块上按需请求

非常先进:

如果通过 requireJS !text 插件加载小工具,我的 HTML 文件将在哪里“优化”为大型单个 HTML 文件?

不,它将在 build.js 中。这个结果我通过 !text 加载模板

如果我只想在每个页面上加载我需要的小工具,我是否必须为每个页面创建一个包含每个小工具依赖项的模块,然后优化模块 index_page、模块 page_with_graph 等以确保只加载需要的内容?

您可以为每个页面构建自己的 buldle,但这不是最好的主意。当我有类似的问题时,我决定构建一个捆绑包,原因有两个 - 它加载了一个,更容易控制 CDN 上的缓存并减少可能的错误和错误。但是,如果您需要单独的捆绑包,请点击发布到模块部分的链接。

如果这样做,将在每个页面上重新请求小工具而不是缓存

因此,如果您加载页面并在 10 个模块中有dep1,则依赖文件将加载一次(如果您在 buld.js 中没有它),然后将其注入模块中。当您重新加载页面文件时,可能会从浏览器缓存中获取或根据浏览器配置再次加载。

希望它会有所帮助。

于 2014-01-31T07:53:07.677 回答