Jquery RequireJS,只为特定页面加载大型库?

Jquery RequireJS,只为特定页面加载大型库?,jquery,requirejs,Jquery,Requirejs,所以我想在一页上使用唯一且准确的。 我在所有页面上都使用requireJS。 这个库大约有400KB,那么我如何避免为特定页面加载它呢 我像这样加载requireJS <script data-main="../js/main" src="../js/requirejs.js"></script> 我当然不想为我为单个页面添加的每个小库添加新的主文件 我忽略了什么?您可以检查一些条件,例如当前URL,然后像这样加载插件: if (/*whatever condit

所以我想在一页上使用唯一且准确的。 我在所有页面上都使用requireJS。 这个库大约有400KB,那么我如何避免为特定页面加载它呢

我像这样加载requireJS

 <script data-main="../js/main" src="../js/requirejs.js"></script>

我当然不想为我为单个页面添加的每个小库添加新的主文件


我忽略了什么?

您可以检查一些条件,例如当前URL,然后像这样加载插件:

if (/*whatever condition*/) {

   require(["plugin-name"], function() {

     // Plugin is now availbale in here.

   });
}

这可以在Javascript代码的任何地方完成。

可能有更好的方法。我没有使用过require,但是您可以将代码包装在init函数中,下面包括require脚本调用该init函数。InitWhather()嗯,不,这不起作用,因为requirejs正在异步加载。当然有更好的方法,但是你可以解析url并检查你在哪个页面上。也许我遗漏了什么,但你不能在你想要的页面上添加库的
标记吗?也许会满足你的需要。您可以将依赖项指定为
define([“lazy!neatHtmlTables”,…],function(neatHtmlTables,…){…}
。它不会被加载;相反,
neatHtmlTables
是一个存根,可以根据需要使用
neatHtmlTables.get()
加载真正的AMD模块,并返回一个承诺。