我正在考虑将 RequireJS 集成到不使用 AMD 的现有 Web 应用程序中。我将包含我的脚本的页面已经包含许多脚本,包括 jQuery 和一些常见的内部脚本。
<script>
我很好奇如果在将这些脚本中的一些脚本加载到传统标签中之后使用 Require 加载它们会发生什么。这是我尝试过的:
索引.html
<script src="js/lib/jquery.js"></script>
<script src="js/lib/require.js" data-main="js/init.js"></script>
初始化.js
require.config({
paths: {
jquery: "js/lib/jquery"
});
require(["jquery"], function($) {
//Do stuff
});
我希望 Require 足够聪明,可以看到js/lib/jquery.js
页面上已经加载的内容,并将其用作模块,而不是重新加载脚本。然后我检查了页面内容,发现 Require 实际上重新加载了脚本:
<script type="text/javascript" src="/js/libs/jquery.js"></script>
...
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="jquery" src="/js/libs/jquery.js"></script>
我知道,期望 Require 足够聪明地做我希望它做的事情可能有点遥不可及,但如果它以这种方式工作,对于将 Require 与现有站点集成的开发人员来说真的很方便。这样您就可以在闲暇时将遗留脚本移入 AMD 模块,甚至无需更改您的需求代码。不过,也许我只是在做梦。:)
任何人有任何想法如何做到这一点?