问题标签 [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 回答
954 浏览

javascript - Requirejs 优化器和 mainConfigFile 错误

我正在尝试针对我们的 webapp 运行 r.js,但遇到以下错误:

错误:错误:mainConfigFile /home/ubuntu/dev/proj/web/insight/js/main.js 中的配置无法使用,因为在优化器中运行时无法正确评估它。尝试仅使用也是有效 JSON 的配置,或者不使用 mainConfigFile,而是将所需的配置值复制到构建文件或提供给优化器的命令行参数中。
解析中的源错误:/home/ubuntu/dev/proj/web/insight/js/main.js: SyntaxError: Duplicate data property in object literal not allowed in strict mode at /home/ubuntu/dev/proj/deploy/r .js:26725:27

我的 build.js 文件是:

我的 main.js 是:

我已经用尽了谷歌搜索。我以为我可以将 main.js 作为 mainConfigFile 插入,它会起飞,但显然我还有其他问题。提前感谢您的帮助。

0 投票
1 回答
218 浏览

javascript - RequireJS:优化文件和旧浏览器

我正在尝试确定拥有单个缩小文件的最佳方式,但也在一定程度上支持旧版浏览器。我有一个大型 Web 应用程序,它使用了大量破坏 IE9 及更低版本的 3rd 方库。理想情况下,我希望至少支持这些浏览器,以检测它们并向用户显示子视图,要求他们升级。我的 RequireJS 流程如下:

在我的 HTML 中,我有一个后端条件语句,它将输出加载链上的第一个链接(我的配置文件),或者缩小的有效负载(如果在生产服务器上):

config.r.js看起来像这样:

boot.js看起来像这样:

压缩后的有效负载基本上合并了config.r.jsboot.js以及app.js它的所有 3rd 方库。每当缩小的有效负载在其中包含所有库的生产环境中提供时,它们都会被 insta-parsed,这使得 IE9 及以下的 insta-error 仅在它们存在时出现。

我如何将其拆分,以便该boot序列与序列分开app,同时仍加载缩小文件或松散的单个文件?我挂断的部分是我如何做到这一点,但要求它要么需要我的 config.r.js,要么需要我的缩小脚本文件,具体取决于我的环境。

任何指导将不胜感激。我不想仅仅为了摆脱错误并显示升级视图而降级库或添加 polyfills..

0 投票
1 回答
309 浏览

javascript - RequireJS 优化器 - 它实际上做了什么?

我的印象是 RequireJS 优化器会查看已定义的依赖项并收集应用程序中所有引用的 js 文件,并将它们捆绑到一个大型 js 文件中。

然后,您就可以在您的 html 脚本包含中引用该单个文件。

但情况似乎并非如此。当我运行它时,我得到一个大文件,但它包含原始 main.js 文件,该文件包含目录结构中文件的路径。

那有什么意义呢?如果需要的所有内容都包含在其中,为什么新的大文件包含自身之外的路径?似乎优化器会重写路径以指向“./”或其他东西。

当我捆绑整个应用程序并在页面中引用它时,我收到有关丢失文件的错误,这些文件包含在大型 js 文件中:

构建.js:

main.js

示例模块开始如下:

然后运行:

我错过了什么?为什么它试图获取包含在那个大 js 文件中的文件?

谢谢,斯科特

0 投票
0 回答
529 浏览

gruntjs - 使用 grunt 进行 Requirejs 优化

我正在尝试使用 grunt 和 almond 创建一个 requirejs 优化配置。这是配置:

文件夹结构:

在此处输入图像描述

错误:

Main.js 代码(用咖啡脚本编写)

我想以不需要 requirejs 的方式将分布在多个 js 文件中的整个项目编译成一个文件。我正在尝试使用 almond js 执行此操作,但构建任务不会查找相对于引用文件路径的引用文件。请帮助我进行正确的配置。

0 投票
1 回答
2116 浏览

playframework-2.3 - Play 2.3 requireJs 多模块优化和shim

这是我当前对 Play 2.2.x requireJS 的设置。2.3以后还会继续工作吗?我在 2.3 文档的任何地方都找不到 requireJs 或 requireJsShim。

0 投票
1 回答
66 浏览

javascript - 如何在应用程序中包含 require.js 项目并缩小两者

有两个不同的项目,一个框架和一个使用该框架的应用程序,我想使用 requirejs 优化器将两者一起缩小。

文件:

我想用 requirejs 优化器创建一个 app.min.js,其中包括框架文件和应用程序文件,顺序正确。

但是,我希望框架能够缩小自身,因此框架中define()require()调用与framework.js文件相关。

问题是,如果我尝试优化我的应用程序,它将找不到框架文件,因为define(['./some'], ...)如果我从我的应用程序进行优化,框架中使用的相对路径(如 )将不起作用。

我怎样才能正确地做到这一点?

0 投票
1 回答
105 浏览

gruntjs - 使用 requirejs 优化器编译

我正在尝试使用 requirejs 优化器和 grunt ( https://www.npmjs.org/package/grunt-contrib-requirejs ) 编译一个项目。编译的输出文件,是一个单独的 js 文件——但它仍然需要像这样从 requirejs 调用:

我需要使用 grunt 编译项目,这样我就不必在脚本中包含 requirejs 来执行文件;像这样:

这是我对 requirejs grunt 编译器的配置:

我还希望能够在此编译期间摆脱 require 和 define 调用。

0 投票
1 回答
106 浏览

javascript - 为什么我必须在 grunt-requirejs 中再次使用“包含”来优化为单个 js 文件?

我正在尝试将grunt-requirejs我的 requirejs 项目优化为单个生产 js 文件。但是,我不确定我的 Gruntfile.js 是否正确,因为我必须再次指定在优化期间要包含的模型,这对我来说似乎是错误的,因为我已经指定了 mainConfigFile。我以为它会从我的 requirejs 文件中读取所有内容。我问这个是因为我有很多模块而且我不想干。

这是我的 Gruntfile.js

这是我的 main-new.js 文件

0 投票
1 回答
59 浏览

requirejs - 优化后缺少requireJS module.config()

运行 RequireJS 优化器时遇到问题...我在主配置文件中定义了以下内容:

然后在我的bootstrap.js文件中我这样做:

但是autoloadundefined:( 但是,该变量在非优化版本中可用

我已经尝试过使用其他模块和其他变量,但基本上没有模块配置被推送到 Require 的优化器的输出文件中。

这是预期的行为吗?

0 投票
1 回答
321 浏览

requirejs - Require.js 优化器错误地排序 shim 依赖项

我有一个使用 Require 来加载依赖项的 Web 应用程序。config.shim我有一组使用 Require对象包含的 JS 库。

两个这样的示例库是:

第二个库,leaflet-dvf需要第一个,leaflet. 第二个是第一个的插件,它依赖于L第一个库定义的全局范围变量。

当我正常使用 Require 运行应用程序时,一切正常。我可以包含 shim 中的任何一个库,一切都很好。没问题。

当我通过 Require r.js Optimizer 运行此代码时,问题就出现了。优化器在构建单个优化的 JS 文件时,会错误地对依赖项进行排序。在构建的文件中,leaflet-dvf代码将位于leaflet代码之前。这会导致 JS 运行时错误,因为依赖插件找不到所需的L全局范围变量。

我的构建配置如下所示:

当我使用 Rhino 运行优化器时,它会构建我的输出文件。在Main-built.js文件中,插件的代码将位于所需库之前。这会导致L undefined error.

如何让优化器尊重我的垫片的依赖顺序,以便在我的优化 JS 文件中正确排序库文件?