我希望通过 RequireJS 2+ 的 shim 加载 jquery、jqueryUI、下划线和主干以及非 AMD jquery 插件,然后为特定视图动态加载 JS。
因此,与其将所有内容组合为 1 个大 JS 文件,我可以...
- 有选择地将某些东西组合为 1 个大 JS
- 作为另一个大 JS 的其他东西(对于另一个复杂的视图),以及
- 留下其他未组合的东西(对于某些小部件)(可能只压缩)?
这可能吗?ps 我什么时候应该考虑使用杏仁?
谢谢你。
我希望通过 RequireJS 2+ 的 shim 加载 jquery、jqueryUI、下划线和主干以及非 AMD jquery 插件,然后为特定视图动态加载 JS。
因此,与其将所有内容组合为 1 个大 JS 文件,我可以...
这可能吗?ps 我什么时候应该考虑使用杏仁?
谢谢你。
如果您在优化项目时使用构建文件,那么您可以准确指定需要处理的模块。
modules
构建文件的部分将是最好的起点。
简短的回答:是的。
更长:
你基本上可以以任何你想要的方式包含你想要的任何东西。您可能面临的唯一问题是 AMD 加载的库的范围在定义“处理程序”函数中是本地的。至少据我所知。
所以我认为是这样的:
define([somefile], function(something){ something == 'stuff from somefile.js'; });
somefile == undefined
你可以做的是:
<script etc..."backbone.js"</script>
define([somefile], function(something){
window.something == 'stuff from somefile.js';
Backone is defined.
});
window.somefile == 'stuff from somefile.js';
所以这是可能的,但是您必须将定义代码中的变量设置为全局变量,例如 window.etc。
而且我认为您可以在高性能情况下使用杏仁。至少根据他们的网站。不过,您可以在 jsperf.om 上编写一些测试代码。