【问题标题】:When using the requireJS optimizer, what's the advantages of buildlayered javascript?在使用 requireJS 优化器时,buildlayered javascript 的优势是什么?
【发布时间】:2013-04-11 21:02:21
【问题描述】:

我正在尝试使用requireJs optimizer r.js (here) 来准备用于生产的应用程序。

我可以让一切正常工作,并且可以将我所有的 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 中

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

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

感谢您提供一些见解!

【问题讨论】:

    标签: javascript optimization build requirejs require


    【解决方案1】:

    好客!

    基本问题:

    Javascript buildlayer requireJs 是什么意思?我的 单个文件?

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

    高级问题:

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

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

    简而言之,您可以在 r.js 配置中配置 modules 部分来管理 includeexlcude 规则达到目标

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

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

    非常先进:

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

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

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

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

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

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

    希望它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 2014-08-03
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多