0

我希望通过 RequireJS 2+ 的 shim 加载 jquery、jqueryUI、下划线和主干以及非 AMD jquery 插件,然后为特定视图动态加载 JS。

因此,与其将所有内容组合为 1 个大 JS 文件,我可以...

  • 有选择地将某些东西组合为 1 个大 JS
  • 作为另一个大 JS 的其他东西(对于另一个复杂的视图),以及
  • 留下其他未组合的东西(对于某些小部件)(可能只压缩)?

这可能吗?ps 我什么时候应该考虑使用杏仁

谢谢你。

4

2 回答 2

1

如果您在优化项目时使用构建文件,那么您可以准确指定需要处理的模块。

modules构建文件的部分将是最好的起点。

于 2012-06-07T08:24:35.903 回答
0

简短的回答:是的。

更长:

你基本上可以以任何你想要的方式包含你想要的任何东西。您可能面临的唯一问题是 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 上编写一些测试代码。

于 2012-06-07T04:59:26.810 回答