问题标签 [requirejs-optimizer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
261 浏览

requirejs - 用假名替换模块 ID

想象一个 AMD JavaScript 应用程序,由三个具有这些 ID 的模块组成:

  • 通用/核心/api
  • 普通/数据/foo
  • 普通/远程/酒吧

当我使用 r.js 构建优化文件时,这些 id 仍在编译文件中。IMO 这是不必要的。例如,当我搜索和替换以下内容时,优化的文件仍然有效:

  • 通用/核心/api -> 一个
  • 普通/数据/foo -> b
  • 普通/远程/栏-> c

替换的优点是:

  1. 较小的文件大小
  2. 更好的模糊性
    (是的,你永远不应该信任客户端。不过,替换模块名称需要逆向工程师来猜测,而不是通过模块名称立即找到应用程序的重要部分)

是否有一个原因我错过了为什么没有这样做或一个额外的工具/命令来用一些自动生成的 ID 替换这些 ID?

0 投票
1 回答
353 浏览

javascript - 为什么 r.js 会合并缩小 JS,然后将所有文件复制到输出目录?

我一直在使用 RequireJS 优化器为我的项目创建多个优化的 JS 文件,并且遇到了我在其他帖子中提到但尚未找到解决方案的问题。

当使用 r.js 优化单个文件时,它会将所有 JS 依赖项拉到单个文件中,并将其放入构建文件中“out”属性指定的文件中。但是,当尝试创建两个优化文件(即使用“模块”属性的多页项目)时,r.js 创建了两个经过优化的文件,但随后将所有文件夹和文件从 appDir 放到输出目录中。也就是说,它将所有 JS 依赖项拉在一起并缩小,然后将各个文件复制到输出目录中。

我意识到 r.js 并非旨在成为部署工具,所以这是设计使然,或者有办法告诉 r.js 不要将依赖文件和目录复制到输出目录中。

0 投票
1 回答
486 浏览

javascript - RequireJS 优化器:排除特定库

我的构建过程将每个应用程序脚本和供应商库组合到一个 .min.js 文件中。现在,假设这个供应商库之一是 jQuery。我的应用程序将在已经使用 jQuery 的环境中运行。所以我不需要在我的构建中包含 jQuery。但是,在我的应用原型(开发环境)中我仍然需要它,所以只能在构建过程中将其移除。

因此,在构建我的 .min.js 文件时,我需要排除 jQuery,但应用程序应该仍然可以工作,并且依赖项仍然应该得到正确解决。

我的 grunt-contrib-requirejs 构建看起来像:

有预定义的方法来解决它吗?或任何解决方法的想法?

0 投票
1 回答
593 浏览

javascript - 使用 angularjs 的 Requirejs 优化器

我正在尝试使用 angularjs、ui-router 和 requirejs 制作一个示例应用程序来延迟加载我的控制器。它在本地运行良好,但我想为生产环境编写 requirejs 优化器,为此尝试使用 grunt:requirejs 工具,但它对我不起作用。它甚至没有给出任何脚本加载错误或其他东西..

我正在使用 grunt:requirejs 任务来编译优化的 dist 文件“main.js”和 grunt 副本以在 dist 目录中修改 index.html:

grunt:requirejs 并修改 index.html -->

加载 dist/index.html 时它什么也没给我,浏览器中没有错误,只是不起作用,如果它给我控制器的脚本加载错误,它可能有任何意义,但它没有。这里完全没头绪。。

0 投票
1 回答
35 浏览

requirejs - requirejs 多页应用优化器合并多个js文件,但仍然http请求非必要文件

我创建了一个多页面的 Web 应用程序,包括: - 单个 requirejs 配置文件,requestjsConfig.js - 一些库,如 jquery.js 等... - 页面 js,如 homePage.js - 表单事件绑定 js,如pageHeader.js - 常见的逻辑处理,如 shoppingCart.js

我尝试使用 r.js 来丑化我的脚本,并合并为 1 个 js 文件。一般来说,它可以工作,但有一个小问题。编译后,浏览器仍然会加载表单绑定js文件,事件它们仍然合并到页面js文件中。

需要JSConfig.js

主页.js

pageHeader.js

r.js 的 build.js 进行优化

运行 node tools/r.js -o tools/build.js 后,访问首页时,还是需要 pageHeader.js。

0 投票
2 回答
634 浏览

javascript - requirejs 和预构建的包

我无法bundles在优化的构建中工作,我正在尝试加载一些外部预构建包(不包含在需要构建过程输出中)。

requirejs.config

test-bundle内容是:

构建配置 pathsmymodulesmymodule1mymodule2设置为empty:(或构建过程失败),我没有使用构建配置modules中的选项来生成捆绑包。

如果我按原样使用源,那么一切正常,正如预期的那样。

在构建版本(但未优化)test-bundle中加载并"defining modules"打印,然后超时加载mymodule2

在构建和优化的版本中,还有一个错误:

就像 if在implementtest-bundle之前加载。requirejsdefine()

我错过了什么或做错了什么?

编辑

我已经使用上面的测试创建了一个分支来安装和构建(nodejs npm并且可能grunt-cli在系统上是必需的)

(请参阅此提交以获取所有修改以添加测试包的文件)

0 投票
1 回答
224 浏览

javascript - 尽管有 'stubModules' 参数,r.js 仍会评估 'text' 插件

首先是一些代码:

我运行的 r.js 启动文件r.js.cmd -o static/js/boot.js

然后插件在控制台中抛出异常:

有人可以回答我为什么 r.js 评估“文本”插件,尽管在构建配置文件属性中使用“stubModules”参数?

我以前读过这篇文章:

  1. 如何防止 Require.js 优化器在优化文件中包含文本插件?
  2. 内联 require.js 文本!使用咕噜声

提前致谢。

0 投票
1 回答
218 浏览

node.js - 优化多个requirejs配置文件

我对 r.js 的优化有疑问

我有一个项目有多个 requirejs 配置文件

每个 main.js 都有自己的包

main.js 代码是:

module1/main.js 代码如下:

build.js 文件是这样的:

当我执行$ r.js -o build.js它时返回一个错误

0 投票
0 回答
52 浏览

angularjs - 如何在 Routeprovider 中加载 Json 数据?

在这里我无法加载 JSON 数据。我在下面的代码中做错了什么。谁能指导我?

0 投票
1 回答
875 浏览

requirejs - RequireJS 优化成多个模块

我正在尝试使用 RequireJS 将我们的 JS 模块化为几个更大的 JS 文件,以便可以按需加载依赖项,但在加载页面时无需大量的单个 JS 下载。

例如,JS 文件为:

  • js/main.js
  • js/views/category1/js1.js
  • js/views/category1/js2.js
  • js/views/category2/js1.js
  • js/views/category2/js2.js

应用程序的某些部分(例如 category1 中的所有内容)仅由某些类型的用户使用,与 category2 类似,因此为每个用户加载它是没有意义的。

我正在尝试为 r.js 构建配置,以创建两个动态加载的模块(category1.js 和 category2.js),其中包含各自 js1.js 和 js2.js 文件中的所有代码。

但是,在加载编译后的输出时,浏览器会抱怨找不到views/category1/js1、views/category1/js2 等。

我什至不确定是否可以从 RequireJS 中的多个较小的 JS 文件创建一些高级模块。有没有人有这方面的经验?

编辑

主.js:

索引.html:

JS1、JS2 等文件是从 router.js 中引用的。