部分使用requirejs并有时手动包含javascript?

时间:2013-10-24 00:52:08

标签: javascript jquery requirejs

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

在我的项目中,我通常会通过<script>元素加载所有必须同步运行的“通常可疑”任何内联页面代码(例如jQuery),并根据需要添加填充程序。 (最新的jQuery版本已经与RequireJS / AMD一起使用,因此本身不需要这样做。)

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


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

  1. <script>包含可以使用其他<script>个包含,只要它们在之后执行
  2. RequireJS模块可以依赖于RequireJS模型,也可以依赖于shimmed <script> include。
  3. <script>包含不能使用RequireJS模型,除非它使用RequireJS。
  4. 另请注意,转换为RequireJS模块的脚本仍然可以通过<script>元素包含(但需要保证该功能不能同步运行),这可以帮助过渡。当然,这可能是一个过渡步骤,因为整个项目都采用了RequireJS / AMD方法。

答案 1 :(得分:-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 and jQuery的部分,以确保集成正确。