问题标签 [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.
javascript - RequireJS 优化和文本插件
我正在使用 RequireJS 优化器来优化也使用文本插件的模块。为了没有文字!每个优化模块一遍又一遍地加载插件,我这样做
哪个有效,部分产生以下内容
不幸的是,如上所示,我不能再“正常”使用文本插件。上面的错误存根阻止我添加文本!调用未优化的依赖列表。
有没有办法解决?有没有什么我可以放入的选项,比如说,将这些text
引用动态更改为texto
然后执行类似的操作
或者其他一些选项可以优化具有文本依赖性的模块,同时又不会扼杀我继续动态使用它的能力?
requirejs - 无法获取 Require Optimizer 来破坏输出
我正在使用 Require Optimizer 将我们所有的源文件合并到一个文件中。这很好用,但是当我尝试设置optimize: 'uglify'
或optimze: 'uglify2'
没有得到损坏的输出时:所有内容都合并到单个文件的一行中,但该行填充了原始变量名。
我尝试设置各种 uglifier 选项,例如:
或者:
但他们不工作。谁能解释我如何让优化器破坏它的输出?
编辑
这是我的build.js
文件:
requirejs - Require.js (almond.js) 定时关闭
我正在尝试使用 Almond.js 和 Require.js 优化器来制作一个可以在没有 Require.js 的情况下使用的独立文件。我已经能够成功编译该文件,并且所有代码都运行了,但是有一个问题:代码以错误的顺序执行。
假设我的主文件(include=
传递给优化器的选项中的那个)具有以下内容:
然后在我的HTML中我有:
由于我使用的是 almond.js 和一个编译文件(因此没有文件加载正在进行),我希望得到输出:
然而,事实证明仍然存在一些异步性,因为我实际看到的是:
如果我尝试window.foo
从 HTML 检查它不存在。
所以,我的问题是,我怎样才能让代码更像一个普通/同步的 JS 文件,在将内容传递到下一个script
块之前首先运行它的所有代码?我不能准确地告诉我的用户“将所有代码包装在 window.setTimeout 中”。
requirejs - 在多页应用程序中使用 RequireJS
我们有一个具有以下结构的多页应用程序:
ApplicationModule是包含所有应用程序逻辑模块的根文件夹,如Usermanagement和其他如下所示:
/应用程序模块/用户管理
//在userManagement文件夹中,我们有 html 页面及其对应的 .js(main) 文件 //所以我们有 login.html和login.js
Login.js反过来需要/加载执行页面逻辑所需的所有脚本文件,因此它的配置如下:
现在,在投入生产之前,我们要使用优化器,以便将所有需要的文件连接起来并缩小为单个文件。
站在 UserManagement 文件夹中,我们为优化器运行以下命令: node ../../r.js -o name=Login out=optimize.js
但它给了我们以下错误:
跟踪依赖项:登录错误:ENOENT,没有这样的文件或目录 'D:[some application path]\ApplicationModules\UserManagement\appSession Manager.js' 在模块树中:登录
错误:错误:ENOENT,没有这样的文件或目录 'D:[some application path]\ApplicationModules\UserManagement\app SessionManager.js' 在模块树中:登录
SessionManager.js文件的错误很明显,它试图在 usermangement 文件夹中找到它,但我希望它在 Scripts 文件夹中查找此文件,如login.js 文件的配置路径中所述。
如果有人能帮助我们解决这个问题,我将不胜感激。
d3.js - NVD3 + D3 + 需要优化器:任何干净的解决方案?
我正在尝试使用两个库:
- D3(一个 Javascript 图形库)
- NVD3(特定于图形的 D3 扩展)
我也在尝试使用 Require Optimizer,这就是事情变得艰难的地方。D3 与 AMD 兼容,因此如果它检测到您正在使用 Require 它将定义一个模块而不是导出全局d3
变量。NVD3 不支持 AMD,但 Require 有针对这种情况的“垫片”。
但是,如果我“填充”NVD3 并为该填充提供 D3 的依赖项,则它不起作用,因为 NVD3 期望有一个全局d3
变量,而 D3 在 Require 环境中不会生成该变量。因此,为了解决这个问题,我制作了一个新模块(d3Shim),它只需要 D3,然后将其注册为全局变量:
我让 NVD3 依赖于 d3Shim,然后一切正常……在正常的 Require-land 中。当我尝试使用 require-optimizer 将所有内容合并到一个文件中时,我发现 NVD3 又开始崩溃了,因为缺少d3
变量。
事实证明,优化器会为 shims 执行此操作:
因此,无论我有什么依赖关系,NVD3 代码都会在 d3shim 模块发挥其魔力之前运行。
我的问题是,有什么方法可以将这两个库与 Require Optimizer 一起使用,而无需更改任何一个文件?如有必要,我总是可以编辑 NVD3 的代码以使其成为 AMD 模块,但出于显而易见的原因,编辑 3rd 方库是一种不好的做法,所以我更喜欢非编辑解决方案。
requirejs - requirejs 优化器是否有不删除空目录的配置选项?
我有一个项目结构,它有一个空目录(可能是自动生成的,但需要)。在这个结构上运行 requirejs 优化器不会将它(这个空目录)复制到输出构建目录。如何告诉优化器在生成输出时保留此目录?
项目结构:
构建配置
requirejs - RequireJS 优化是否仅适用于驻留在同一服务器上的脚本?
我使用的大约一半脚本位于 CDN 上,另一半与应用程序位于同一台服务器上。我不知道在这种情况下要优化什么。有人可以建议吗?
node.js - npm + 摩卡 + RequireJS
我有很多时间尝试使用 Mocha 和 RequireJS 设置 node/npm。这就是我所做的。
我创建了一个 testing/ 目录,结构如下:
以下是每个相关文件包含的内容:
包.json:
测试/mocha.opts:
测试/小部件/mywidget/test.js
它将在“需要之前”和“完成”输出控制台行,但只要我有 requirejs(['mywidget... 行,它就不会命中 after require。如果我删除 requirejs 行(和相应的右括号/括号行),而是使用直接“var myObj =”行,我得到“找不到模块”,如果我使用第二个“var myObj”行,我得到“参考错误:未定义定义”。
为了方便其他开发人员,我正在尝试使用 npm 打包这一切,以便我从顶部的“testing/”目录中运行命令“npm test”。
我一直在寻找答案并尝试了很多事情,但我似乎不需要使用 RequireJS 的文件并定义了“define()”。我可以执行测试,这不是问题......它只是试图将 RequireJS 插入到我开始遇到问题的组合中。
任何帮助都将是巨大的!
谢谢!
javascript - 防止优化文本!和json!requirejs优化工具上的插件
我正在为基于多页 requirejs 的应用程序使用以下架构。: https ://github.com/requirejs/example-multipage-shim
该存储库解释了如何通过运行 r.js(用于此类任务的命令行工具)来优化应用程序。
一切都应该可以正常工作,但我的项目作为一些具有依赖项的模块执行 HTTP GET 请求以从服务器获取数据(可以是文本或 json)
这是因为我的某些页面使用的一些 json 和模板需要在服务器端处理以进行本地化。
这是一个基本示例来说明我在说什么:
向我的服务器 localhost/pagelang/login 发出 HTTP 获取请求,该请求返回 json
这同样适用于template/template_name
从服务器返回将其 UI 翻译成用户语言的 html。
通过运行 r.js,它会尝试为服务器上现有的目录目录加载这些位置,而这显然不存在。
所以,我想阻止命令行工具优化文本!和json!模块。可能吗?
我检查了 requirejs 构建设置,但没有找到解决问题的方法。有什么帮助吗? https://github.com/jrburke/r.js/blob/master/build/example.build.js
dojo - 引用插件时 RequireJS 优化失败 (xstyle/css)
我遵循了http://requirejs.org/docs/optimization.html中描述的示例文件结构并得到了一个工作版本。然后我将 two.js 修改为如下所示:
并将 xstyle/css 添加到 build.js 中:
添加再次运行构建:
r.js.cmd -o build.js 优化=无
现在我看到了这个错误:
有很多引用相同的错误,但没有解决这个特定问题(例如):
https://github.com/odoe/AGSModularDemo
是否可以使用 requirejs 优化 dojo 应用程序?