案卷
我试图找到建立一个大型javascript项目的最方便的解决方案。
所需经费如下:
令我惊讶的是,这是一项非琐碎的任务。我在使用AMD时遇到了以下问题:
当我不使用AMD时,我遇到了其他问题:
可能的解决办法
所以我在考虑一种解决方案:
它将由一个定义require( <deps>, <factory> )的小脚本和一个实现基本模块定义和注入的‘`define(,,)函数组成。它不会实现任何、异步加载、或具有不匹配依赖项的脚本队列!
此外,我将使用命名模块模式来定义任何模块,而不是使用匿名模块。尽管这将牺牲最少的可移植性。
现在,我可以使用、requirejs、或那个微小的依赖注入器以及手动的<script src=""></script>加载。在使用后一个选项时,我仍然需要使用如下所示的方式注册已加载的非amd库:
define( 'raphael', [], function() { return Raphael; })你认为如何?我是不是在做些理智的事?重新发明方向盘?不必要的复杂?
更新
我想我可以用杏仁( almond,https://github.com/jrburke/almond)来达到上述目的。
发布于 2013-07-18 07:33:08
装货保龄球组件不容易完成。例如,如果不修改源,就不能使用AMD加载Raphael。
您可以使用requirejs中的shim来加载通常不是AMD可加载的模块。(或者拉斐尔真的是个特例?)
requirejs优化器将所有内容都构建到一个文件中,不允许从站点脚本中分离库。似乎是一件明智的事。
那不是真的,伊霍。读取http://requirejs.org/docs/optimization.html#wholemultipage
https://stackoverflow.com/questions/15774775
复制相似问题