使用 requireJS 优化器时,buildlayered javascript 有什么优势?

2024-01-09

我正在尝试我的第一次尝试requireJs optimizer r.js (here http://requirejs.org/docs/optimization.html)准备生产申请。

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

基本问题:

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

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

高级问题:
假设在一页上我正在使用完成的图表jqplot http://www.jqplot.com/,它使用 xy 额外的 javascript 文件,我在应用程序中的其他任何地方都不需要。

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

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

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

感谢您分享一些见解!


好问题!

基本问题:

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

首先,让我们将buildlayer改写为“bundle”,它具有更客观的含义。所以它的串联模块设置。它可以是单个的 - 如果您将模块放在一个构建中,或者如果您想为某些页面构建指定的构建,则可以将其放在几个构建中。

高级问题:

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

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

简而言之,您可以配置modules部分在r.js配置管理include and exlcude达到目标的规则

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

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

非常先进:

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

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

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

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

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

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

希望它会有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 requireJS 优化器时,buildlayered javascript 有什么优势? 的相关文章

随机推荐