0

我开始使用 requirejs 并且我看到的所有教程都使用 requirejs 来加载 jquery 和主干以及其他 javascript 文件需要的所有 js 模块。

我猜一个使用requirejs的项目必须转换他们所有的javascript文件以满足requirejs所需的格式。
(使用requiredefine

有时,我觉得使用简单的<script>标签来包含 js 文件更容易。

有没有简单的方法来混合这两种方法?

4

2 回答 2

0

混合这些方法通常是“可以的”(但有一些警告1),尽管整体效果将取决于几个因素。无论如何,这正是 RequireJS “匀场”所允许的。您还可以创建一个 RequireJS 模块来填充通过标签加载的外部 JS 文件,而不是使用配置。

在我的项目中,我通常会通过元素加载所有“通常嫌疑犯”任何必须同步运行的内联页面代码(例如 jQuery),<script>并酌情添加垫片。(最新的 jQuery 版本已经与 RequireJS/AMD 一起工作,所以这本身不是必需的。)

然后我将 RequireJS 模块用于其他代码。如下所示,由于 jQuery 被填充(并通过 加载<script>),因此它可以作为依赖项包含在任何相关模块中。


1 RequireJS/AMD 和元素之间的最大区别在于 RequireJS <script>/AMD 是异步的,而<script>元素(通常)是同步的。以下是基本规则:

  1. <script>包含可以使用其他<script>包含,只要它们在之后执行。
  2. 一个 RequireJS 模块可以依赖于一个 RequireJS 模型,或者一个填充<script>的包含。
  3. 包含不能<script>使用RequireJS 模型,除非它使用 RequireJS。

另请注意,转换为 RequireJS 模块的脚本仍然可以通过<script>元素包含(但需要注意的是,该函数不能保证同步运行),这有助于转换。当然,这应该是一个过渡步骤,因为整个项目都被转移到遵循 RequireJS/AMD 方法。

于 2013-10-24T01:23:07.263 回答
-3

无论您包含哪些库,Vanilla JavaScript 都应该始终有效。

例如,您可以在您的<head>部分中使用所有这些:

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="http://requirejs.org/docs/release/2.1.9/minified/require.js"></script>

请务必阅读名为RequireJS 和 jQuery的部分以正确集成。

于 2013-10-24T00:54:18.450 回答