问题标签 [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 投票
0 回答
211 浏览

javascript - requirejs 构建后的“$.widget 未定义”

我正在使用 requirejs 加载 jquery.selectBoxIt。它使用 jQueryUI Widget factory,这就是为什么我只将 jQueryUI 官方网站上的 widget factory 加载到我的项目中。

当项目加载 config.js 时,selectBoxIt 运行没有问题。但是当我用 r.js 构建项目时,我得到了错误$.widget is not defined

请帮助我,请修复它。

PS。我已经阅读了一些谷歌搜索结果,但没有任何帮助。

配置.js

模块.js

行中的 selectBoxIt 代码中出现错误

0 投票
0 回答
37 浏览

requirejs - 将未优化的文件与 r.js 一起使用

我正在使用以下优化器设置优化我的 Durandal 构建:

我的问题是我的 中有一个config.jsrequireConfig.paths我想将其排除在优化之外并用作非优化版本。这样做的原因是因为我希望能够在不深入优化文件的情况下更改构建中的配置文件。

我试过excludeand empty:,但这只会从优化的 js 文件中排除配置。我如何将它作为“远程”文件包含在内?

配置.js:

0 投票
3 回答
191 浏览

javascript - 在 Durandal 构建中从优化中排除文件

我正在使用 Grunt 构建Durandal 入门套件 pro包。

一切都很好,除了一个小细节。我想app-config从优化器中排除一个文件(如下),并在我的构建完成后将其保留为非缩小文件。

根据其他 SO 线程建议,我目前正在使用 排除它empty:,这会按预期将其从优化文件中删除。但是,当我打开构建的项目时,控制台中出现错误:

Uncaught Error: main missing app-config

杏仁有问题吗?我尝试使用 将其切换到完整的 requirejs include: ['path/to/require'],但没有成功。

如果您想在本地复制它,您可以从上面的链接下载入门工具包,或者使用与我的示例更接近的稍微配置的版本。只需npm install在文件夹中运行一个就可以了。

0 投票
1 回答
158 浏览

javascript - RequireJS Optimizer 硬包含

我有一个大型客户端项目,我想将其捆绑成 2 个捆绑包而不是 1 个捆绑包。

这是我的依赖树:

模块的依赖树

所需的输出将是拥有这些捆绑包:

  1. main那包含着b
  2. x仅包括a(因为b已包含在第一个捆绑包中,我不希望用户多次下载一段代码)。

这是我的优化器配置:

我确实想从main的整个依赖树中排除x,但仍然包含我明确需要的模块,例如a.

我知道:

  1. include— 显式包含不需要的模块及其整个依赖树。
  2. exclude— 排除一个模块实际上是排除了它的整个依赖树,include在发生冲突时会覆盖。
  3. excludeShallow— 包括模块的依赖树,包括模块本身。

有了这个,我看不到一个明确的方法来完成我想要的,你能帮忙吗?

0 投票
1 回答
330 浏览

gulp - requirejs 优化器 - 如何更改优化的模块名称

我想用 requirejs 优化器优化一些模块,但遇到了关于路径的问题。入口main.js点需要组件 on /build/modules/,但优化模块的名称与此路径不匹配。组件文件被加载,但它定义的函数没有被调用。 main_component.js需要组件moduleAand moduleB,而build'smain.js需要内置main_component.js.

代码./build/main.js

代码./build/modules/main_component

项目结构:

另外,我正在使用 gulp wrapper gulp-requirejs-optimize。这是我的 gulpfile:

0 投票
1 回答
3111 浏览

javascript - requirejs优化后jQuery.ui未定义

我的 Web 应用程序中有几个 JavaScript 文件,这些文件以前是通过<script>标签加载的,按照相对依赖关系的顺序排列。现在我正在通过 require.js 重新组织它们,以便积累和缩小它们以用于生产。

对于初学者,我想简单地将所有文件加载到全局(窗口)上下文中,而无需 AMD 封装:

这里的想法是'jquery'定义一个全局(窗口上下文)jQuery变量,'jquery-ui'设置jQuery.ui'jquery-ui.touch-punch'更改jQuery.ui(以获得更好的触摸支持)。

这在按原样运行时效果很好,即没有优化。但是,编译成一个文件并使用RequireJS 优化器缩小后,会出现以下错误:

这发生在试图访问的线路上jQuery.ui.mouse

在浏览器控制台内部,jQuery在窗口上下文中正确设置,但jQuery.ui未定义。但是,手动执行require(['jquery-ui'])确实jQuery.ui按预期设置。

优化后 jQuery UI 的行为似乎有所不同,但我看不出究竟是如何或为什么。我究竟做错了什么?

0 投票
2 回答
1551 浏览

node.js - 让 Cordova 等待异步钩子完成

在我的 Cordova 项目中,我有一个在after_prepare. 这种优化本质上是异步的,所以我的钩子代码在所有优化完全完成之前返回。

例如,这会在运行时导致问题cordova run browser:在第一个页面加载时,优化尚未完成,网站看起来很糟糕。

有没有办法让 Cordovoa 构建过程阻塞,直到某个钩子触发回调?或者优化器可以以阻塞/同步方式运行吗?

我能想到的另一种方法是使用不同的优化过程并在主要中忙于等待它完成,但这对我来说似乎是一种矫枉过正和不好的做法。

0 投票
1 回答
225 浏览

requirejs - 使用requirejs优化器r.js组合非amd脚本文件时,如何跳过捆绑末尾包含的定义?

我正在尝试使用 requirejs 中的 r.js 优化器优化我的 javascript 项目。我在我的项目中同时使用 amd 和非 amd 模块。将有两种环境,一种有requirejs环境,另一种没有requirejs环境。非requirejs环境中的文件不应该有require或define调用。在使用 r.js 将 amd-modules 组合到包中时,可以在文件末尾使用包名称进行定义调用。但是对于文件优化后的非requirejs环境,它们也会在文件末尾使用模块名称获得定义插入。

假设我有四个文件 A 和 B,它们是 AMD 模块,C 和 D 是非 AMD 模块。

我的 build.js 是这样的

这是捆绑 amd 文件的样子。

捆绑的非amd文件看起来像

如何解决这种情况。我已经阅读了优化文档和 example.build.js。还是想不通。我错过了什么吗?有没有办法在非 amd 模块的末尾排除定义调用。如果是,如何?

0 投票
0 回答
42 浏览

javascript - Requirejs优化器

有没有办法处理优化过程中发生的错误。例如,如果 javascript 文件中有错误,则应包含该文件,但不应对其进行优化。是否有一个选项可以为错误生成日志。

我的 build.js

0 投票
1 回答
544 浏览

requirejs - 如何将 Ckeditor 与 requirejs 和 r.js 优化器一起使用

我有一个使用 CKEditor 的大型项目,该项目使用 requirejs 优化器 ( http://requirejs.org/docs/optimization.html ) 将所有 javascript 合并到一个 .js 文件中。jquery 和 ckeditor 等单个模块在使用 requirejs 时是“必需的”。

除了ckeditor之外,一切都很好。现在我必须从单个组合的 .js 文件中“排除”ckeditor(“排除”是 requirejs 优化器的一个选项)。

我的要求配置如下所示:

我必须从优化器中排除 ckeditor,否则 ckeditor 无法找到我的插件、我的语言文件,甚至是主 config.js 文件。

我试过CKBuilder,但没有帮助。CKEditor 对 requirejs 优化器不友好吗?有没有人能够将所有 CKEditor 整合到一个应用程序 .js 文件中?

基本上我希望能够删除那个“排除”行。