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

javascript - 嵌入式 ember-cli 项目与 RequireJS 冲突

我正在尝试将 EmberJS 应用程序嵌入到广泛使用 RequireJS 库的大型门户应用程序中。我正在使用 ember-cli 来构建项目。构建的应用程序包含两个文件,dist/assets/vendor.jsdist/assets/myapp.js. EmberJS 应用程序在嵌入后工作,但门户应用程序的 javascript 中断。

经过一番研究,我发现问题在于它vendor.js定义了自己的变量require, requirejsrequireModule并且define与全局命名空间中的网站变量冲突。然后该myapp.js文件包含define加载应用程序模块的语句。

有没有办法重命名这些或将它们放入一些不同的命名空间?

我想出的唯一解决方案是手动重命名两个.js文件中的变量。这似乎可行,但它相当麻烦,如果它可以自动化,那就太好了。我还发现了有关使用 RequireJS 优化器的信息,但我无法让它与vendor.js文件一起使用。

你能帮助我吗?谢谢!

0 投票
1 回答
575 浏览

javascript - 需要路径中的变量不适用于 r.js

我是r.js优化新手,但喜欢requirejs

构建-config.js

app.js看起来像

当我 r.js -o build-config.js在项目根目录中运行时,出现以下错误:

尝试仅使用也是有效 JSON 的配置,或者不使用 mainConfigFile,而是将所需的配置值复制到构建文件或提供给优化器的命令行参数中。

解析的源错误:e:/mongrel_mpq/src/main/webapp/webresources/javascript/app.js: > ReferenceError: _JSHome 未定义

重复但没有解决方案 - Require.js 优化器和路径中的变量

0 投票
1 回答
316 浏览

requirejs - 从需要 js 优化构建中排除 shim

我有一个 durandal WebApp,它使用 require js 来加载模块。为tinymce 配置了一个垫片。使用非优化版本时可以正常工作。当我使用 r.js 优化代码时,我想从包中排除 tinymce,但它总是包含在内。有谁知道如何将垫片排除在优化构建中?我正在使用 gulp-durandal,并且我已经成功地排除了其他模块,使用 excludeShadow 设置,但它不适用于垫片,或者我做错了什么。

编辑:我设法通过在 gulp-durandal 文件中手动设置 rjsConfigAdapter 中的排除数组来解决问题。由于某种原因,moduleFilter 函数没有排除文件,但排除数组完成了这项工作

0 投票
1 回答
49 浏览

requirejs - 将具有依赖项列表的变量传递给 define() 时优化失败

当我们在调试模式下运行我们的站点而不缩小脚本时,它可以工作:

但是一旦代码被缩小,它就会停止工作。你知道为什么吗?

请注意,这有效:

我们之所以要使用数组,是因为我们想循环遍历它以将 'template' 替换为 'template.1010101010',其中 10101010101 是基于文件创建的时间戳,这样维护文件使我们能够自动文件更新时绕过缓存。

请注意,我们还有更多文件要循环。

0 投票
0 回答
72 浏览

playframework - Play Framework - RequireJS 优化器的问题

我有一个PlayFramework 2.3 项目并在客户端使用require.js

当我运行activator run一切正常时(所以我确信 require 的依赖是好的)。但是在运行时activator start,缺少一些依赖项。

在播放文档(此处)中,他们说:

RequireJS 优化器通常不应该在执行部署之前启动,即通过运行 start、stage 或 dist 任务。

所以优化器在运行时运行start而在运行时不运行run,这就解释了为什么运行时一切正常activator run

那么,无论如何配置优化器或在运行时禁用它activator start

0 投票
1 回答
710 浏览

gruntjs - 运行requirejs时如何在gruntfile.js中有多个输出文件

在 grunt-contrib-requirejs 的 Gruntfile.js 中,我只能注册一项任务,并且只能有一个输出文件,即 home_scripts.pack.js。但是,我希望根据不同的“包含”标准拥有尽可能多的输出文件。例如,home_scripts.pack.js、checkout_scripts.pack.js、product_scripts.pack.js 等。这样每个页面将只加载正在使用的 JS:

这是无效的,但是我想做类似的事情:

上面带星号的代码是我要为每个页面生成不同的输出文件的代码。但是,如果有更有效的方法通过 requireJS 优化器使用 grunt 生成和加载大量 JS 插件文件和模块,我愿意接受建议。

谢谢,

0 投票
1 回答
341 浏览

javascript - 在 RequireJS Optimizer 中排除除 Javascript 文件之外的所有内容

我在 gulp 配方中使用 RequireJS 优化器来编译和连接我的模块,但是冗余的第 3 方库文件(如 bower.json 和 *.nuspec 文件)被复制到我的输出目录中。

我已经成功地使用以下表达式在 requirejs.optimize 选项对象中使用 fileExclusionRegExp 排除了完整目录:

/^\.|^styles$|^templates$|^tests$|^webdriver$/

但是,我无法弄清楚如何排除.js文件扩展名以外的所有内容。我可以使用以下内容:

/^\.|.json$|.nuspec$|^styles$|^templates$|^tests$|^webdriver$/

排除特定扩展,但如果稍后出现新类型,我将不得不注意然后更改正则表达式。此外,随着时间的推移,正则表达式可能会变得不守规矩且难以维护。我尝试使用以下表达式:

/^\.|!js$|^styles$|^templates$|^tests$|^webdriver$/

/^\.|!.js$|^styles$|^templates$|^tests$|^webdriver$/

/^\.|^.js$|^styles$|^templates$|^tests$|^webdriver$/

/^\.|[^.js$]|^styles$|^templates$|^tests$|^webdriver$/

/^\.|[^.js]$|^styles$|^templates$|^tests$|^webdriver$/

结果的范围从无所事事(前 3 个,到破坏构建,最后 2 个),任何人都可以提供任何帮助,我们将不胜感激。

谢谢

0 投票
0 回答
120 浏览

requirejs - r.js 优化器和下划线 _.template() 函数的问题

_.template()在创建优化构建后,我遇到了 Underscore 问题(我使用旧版本 [1.3.3] 并且不能在此项目中使用其他版本)功能。

优化后,我有一个包含所有初始模块的文件。下划线(如 jQuery)也通过 shim 放置在那里。模板文件通过onBuildWrite()函数排除并动态加载。

但是有一个大问题:优化后_.template()不能正常工作。它不能评估模板文件中的多行(但单行代码在某些情况下评估得很好[我无法检查所有内容])JS。因此,例如它无法解析此模板文件:

“未捕获的 ReferenceError:未定义 subsIconsNames”

但没有优化它工作正常。

感谢您的关注。

0 投票
2 回答
2100 浏览

javascript - 我可以将 RequireJs 模块和 require.js 本身组合成一个 js-bundle

我正在使用 RequireJs Optimizer 将所有模块合并到一个文件中 - app.js

在生产中,我有两个 js 文件:app.js 和 require.js

生产 HTML 具有以下脚本标签:

这将导致运行时对 js 文件的两次请求。

问题:是否可以将包括所有模块和 require.js 本身在内的所有内容合并到一个文件中,所以我在运行时只有一个请求?

0 投票
1 回答
579 浏览

requirejs - RequireJS baseUrl 和多个优化文件

我已经从我的应用程序代码中分离出我的 3rd 方库,并将它们全部组合到一个vendor.js文件中,供 requirejs 提取。在我的build.js文件中,我使用modules语法来优化我的主应用程序,不包括供应商脚本,并优化vendor.js文件。我遇到的唯一问题是当我编译的main模块请求时vendor,它baseUrl从配置文件中获取,因此不加载优化vendor.js文件。我的build.js文件如下所示:

我的main.js文件如下所示:

所有开发都在js文件夹中完成,我的build.js文件在该文件夹之外。优化后的文件以build为同级文件js,但是当我像这样包含我的主文件时:

它最终js/vendor.js为该define()呼叫加载。我在这里想念什么?我怎样才能告诉优化的main文件加载build/vendor.js,但允许未优化的版本仍然加载js/vendor.js