我可以优化一组JS(组合到一个)并仍然动态加载某些模块w / requireJS吗?

时间:2012-06-07 01:46:09

标签: backbone.js requirejs

我希望加载jquery,jqueryUI,underscore&主干和非AMD jquery插件通过RequireJS 2 +的shim,然后为某些视图动态加载JS。

因此,不是将所有内容组合成一个大的JS文件,我可以......

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

这可能吗?附:我何时考虑使用Almond

谢谢。

2 个答案:

答案 0 :(得分:1)

如果您在优化项目时use a build file,那么您可以准确指定需要处理的模块。

modules section of the build file将是最佳起点。

答案 1 :(得分:0)

简答:是的。

长:

您基本上可以以任何方式包含您想要的任何内容。您可能遇到的唯一问题是AMD加载的lib的范围在define'handler'函数中是本地的。据我所知,至少。

所以我认为就是这样:

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上写一些测试代码。