我开始使用requirejs和我看到的所有教程使用requirejs来加载jquery和backbone以及其他javascript文件所需的所有js模块。
我猜一个使用requirejs的项目必须转换所有的javascript文件以满足requirejs所需的格式。
(使用require
和define
)
有时,我觉得使用简单的<script>
标记来包含js文件更容易。
是否有简单的方法来混合这两种方法?
答案 0 :(得分:0)
混合方法通常是“好的”(但有一些警告 1 ),尽管整体效果取决于几个因素。无论如何,这正是RequireJS "shimming"所允许的。您还可以创建一个RequireJS模块来填充通过标签加载的外部JS文件,而不是使用配置。
在我的项目中,我通常会通过<script>
元素加载所有必须同步运行的“通常可疑”或任何内联页面代码(例如jQuery),并根据需要添加填充程序。 (最新的jQuery版本已经与RequireJS / AMD一起使用,因此本身不需要这样做。)
然后我将RequireJS模块用于其他代码。如下所示,由于jQuery是shimmed(并通过<script>
加载),因此它可以作为依赖项包含在任何相关模块中。
1 RequireJS / AMD和<script>
元素之间 big 的区别在于RequireJS / AMD是异步而{{1元素是(通常)同步。以下是基本规则:
<script>
包含可以使用其他<script>
个包含,只要它们在之后执行。<script>
include。<script>
包含不能使用RequireJS模型,除非它使用RequireJS。另请注意,转换为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的部分,以确保集成正确。