问题标签 [requirejs]

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 回答
14455 浏览

javascript - RequireJS:多个 main.js?

我一直在使用 requireJS 构建一个单页应用程序,到目前为止我很喜欢它。我已经到了在主应用程序之外开发网站的其他部分的地步,我不确定如何(或是否)为此使用 requireJS。

在我的主应用程序中,一切都是由这个脚本标签触发的:

我现在正在开发具有自己的前端脚本的主页。在网站上线时使用优化器,它将所有这些脚本捆绑到一个main.js包中。我正在努力了解我的网站的其余部分适合于此。

假设我的应用程序依赖于 jQuery,并且它被捆绑在应用程序的优化版本中,如果我想在主页上使用 jQuery 怎么办?我不想加载我的应用程序main.js只是为了访问我的 jQuery 模块。所以是的......有点困惑!


我正在想象一个类似这样的网站结构:

应用程序:

主页:


问题

  1. 如何使用 RequireJS 开发网站的不同部分?
  2. 是否建议有多个 main.js 文件?
  3. 我的不同main.js文件如何共享通用模块,例如 jQuery 后期优化?
0 投票
1 回答
446 浏览

javascript - 是否可以强制 RequireJS 重新加载文本依赖项?

我想使用 RequireJS 从服务器获取 JSON 格式的数据。我从不同来源请求数据,然后在回调中显示它。像这样:

我的问题是有时我需要重新加载一些对象(如果它们已更改),但 RequireJS 不会第二次请求它,因为它不知道数据已更改。是否可以强制它重新加载一些数据?或从“缓存”中删除这些数据?

0 投票
6 回答
70068 浏览

javascript - 使用 RequireJS 加载 Backbone 和 Underscore

我正在尝试使用 RequireJS 加载 Backbone 和 Underscore(以及 jQuery)。使用最新版本的 Backbone 和 Underscore,这似乎有点棘手。一方面,Underscore 自动将自己注册为一个模块,但 Backbone 假设 Underscore 是全局可用的。我还应该注意,Backbone 似乎没有将自己注册为一个模块,这使得它与其他库有点不一致。这是我能想到的最好的 main.js:

我应该提到,虽然它可以工作,但优化器会窒息它。我收到以下信息:

有没有更好的方法来处理这个?谢谢!

0 投票
1 回答
2460 浏览

javascript - 如何在 Node.js 和 AMD 中使用 Backbone 模型(浏览器上的 require.js)

我目前有一个使用 require.js的工作AMD主干模型,如下所示:

AMD/Backbone 组织来自本教程jrburke 对 Backbone 的 Pull Request

我也想在 Node.js 中使用 Backbone 模型,因为在过去不使用 AMD 时共享 Backbone 模型和集合效果很好,而且,显然我是一个受虐狂。

所以我尝试了以下方法(受 Backbone mod 的启发):

但是Game当我将它包含在浏览器中时现在是未定义的:

当我查看CommonJS notes时,恐怕我还不清楚。如何在浏览器中使用与 AMD 文件和 Node.js 模块相同的主干模型文件?

还有额外的好处:有没有比每个文件顶部的 ~10 行更简洁的方法?理想情况下没有定义垫片

0 投票
5 回答
12031 浏览

backbone.js - 非常基本的 Backbone/Underscore via Require.js 问题让我发疯

我正在尝试实现一个使用 jquery、underscore.js 和 backscore.js 通过 require.js 加载的基本测试,由于某种原因,我似乎无法正确排列所有内容。研究表明,其他人没有遇到过同样的问题,所以我知道这一定是我没有看到的简单问题。

我遇到的问题是,当backbone.js 加载时,它找不到对_ 的引用。我发现其他人报告了同样的问题,但问题通常是以错误的顺序将依赖项引用传递给处理程序或其他明显的问题。这发生在主干加载时。

我还看到了许多“机械”解决方案,例如“将所有内容放在同一个文件中”,并通过按正确顺序包含多个脚本以传统方式加载它们,但我真的很想让它工作,因为它似乎是一种强大的方法。

最初我从这里的结构http://backbonetutorials.com/organizing-backbone-using-modules/开始,它在演示中工作,但感觉有点脆弱,因为当我尝试进行非常简单的修改或构建一个简单的示例时地面,它打破。

在我的头撞了太久之后,我回过头来发现这个页面 使用 RequireJS 加载主干和下划线 和另一个简单的例子,我重新获得了希望。然而,在基于它建立一个新的测试之后,我仍然收到同样的问题,即使主干的 0.5.3-optamd 分支应该处理它自己对下划线的依赖。

事不宜迟,这里是超简单的代码,它应该可以工作,但却让我发疯。希望这是我刚刚以某种方式错过的显而易见的事情:

索引.html

js/main.js

js/app.js

确切的控制台输出是:

我在使用 Chrome 17.0.938.0 dev-m 的 Windows 7 机器上。

我的脚本版本是:

我的目录结构是:

我无法相信这给我带来了多大的困难,我真的希望有人能阐明这里到底发生了什么。

0 投票
4 回答
10508 浏览

jquery - 使用 require.js 加载 Highcharts

我一直在尝试将 highcharts 作为 require 模块加载,但收效甚微。我想知道是否有人设法让这个工作,或者他们是否有任何指示让我走上正确的轨道?

谢谢

0 投票
3 回答
1553 浏览

javascript - RequireJS 和 QUnit 基础中的单元测试

我只是想在 Javascript 和 RequireJS 中进行单元测试。我正在构建一个网络应用程序,显然只想在开发而不是生产构建中运行测试。

问题:

  1. 您只是在需要时进行测试,还是在开发时在每次页面加载时运行 JS 测试?
  2. 如果测试只是按需进行,那么如何触发测试运行?查询字符串(例如?testing=true)或类似的东西?

我只需要了解人们如何在开发中进行测试。我在前端使用 BackboneJS、RequireJS 和 jQuery,在后端使用 NodeJS/ExpressJS 服务器。

0 投票
1 回答
953 浏览

javascript - RequireJS - 从优化的构建中省略测试代码

我一直在研究基于 RequireJS 将测试集成到我的应用程序中。我发现了如何将 QUnit 测试集成到 RequireJS 结构中的这个示例。显然,您不希望测试代码存在于生产版本中。在 RequireJS 中,如何在最终的生产构建中保持测试?

0 投票
3 回答
2344 浏览

javascript - 对模块化 Javascript 网络应用程序进行单元测试

我正在使用 BackboneJS 和 RequireJS 构建一个 Web 应用程序,并且需要为通过 AJAX 的 UI 交互和数据检索实现某种形式的单元测试。我遇到过QUnitJasmine,但我真的不知道如何将它集成到我的应用程序中。

如果我正在测试以下内容:

  • 用户登录正常吗?
  • 是否从服务器接收到数据正常?
  • 单击按钮会触发预期的响应吗?
  • 点击事件是否适用于动态加载的 html 内容?
  • 应用程序是否正确响应哈希/推送状态 url 的变化?

我想测试必须直接集成到我的应用程序中,以便访问特定的 JS 对象、处理特定于会话的数据并响应推送状态 URL 的变化。

如何将 QUnit 或 Jasmine(或其他建议)集成到我的模块化应用程序中以对这些功能进行单元测试?

0 投票
2 回答
2232 浏览

javascript - 使用 RequireJS 的骨干网集合设置默认 API url

如何为来自 Backbone 中的集合和模型的所有请求设置默认 url/服务器?

示例集合:

我进行了初始 AJAX 调用以获取我的设置,包括 API 的 url (api.local)。

如何在不将请求传递给我的所有模型或硬编码模型和集合中的 url 的情况下重新路由请求?