Javascript 对插件集合使用requirejs

Javascript 对插件集合使用requirejs,javascript,requirejs,Javascript,Requirejs,我使用的是requirejs,这样我就不会在每个页面的head标记中都包含每个脚本。切换到使用requirejs背后的主要动机是我们有像CodeMirror这样的插件,还有大约15个插件来扩展它 我想要避免的是,例如: require(["cm", "cmxml", "cmcss", "cmcodefold", "cmfoldgutter", "cmbracefold", "cmcommentfold" ....], fn); 我想把它作为require([“cm”],fn)来使用并自动包含所

我使用的是requirejs,这样我就不会在每个页面的
head
标记中都包含每个脚本。切换到使用requirejs背后的主要动机是我们有像CodeMirror这样的插件,还有大约15个插件来扩展它

我想要避免的是,例如:

require(["cm", "cmxml", "cmcss", "cmcodefold", "cmfoldgutter", "cmbracefold", "cmcommentfold" ....], fn);
我想把它作为
require([“cm”],fn)来使用
并自动包含所有与此相关的插件。我还希望将插件分开,因此将所有文件合并到codemirr.js中不是一个选项


在我开始创建自己的函数或修改第三方代码之前,我想知道的是,requirejs在任何情况下是否允许这种加载?我看了很多文档,什么都找不到,但这并不意味着我没有错过它,也不意味着它没有记录在案。提前感谢。

我已经使用一个名为cminit.js的脚本的垫片成功地实现了这一点——deps数组只列出了CodeMirror的所有插件,而CodeMirror又依赖于CodeMirror,而CodeMirror又依赖于jQuery。因此,调用require for cminit.js自动意味着jQuery存在


这是可行的,但我不确定这其中有多少是最佳实践。如果您有更好的方法,请随时发表评论。

我认为最好的方法是创建另一个CodeMirror脚本,其中只包含
require([“cm”,“cmcss”…],fn)
。然后我调用
require([“cminit”],fn)
(假设我调用我的文件cminit.js)。我已经使用cminit.js的一个垫片成功地实现了这一点,
deps
数组只列出了CodeMirror和我需要的所有插件,在网络选项卡中,我可以看到cminit.js按照预期最后加载。因此,我可以将所有与CodeMirror相关的代码放在该文件中(例如CodeMirror初始化器和事件处理程序)。但是,不确定这其中有多少是最佳实践,但它确实有效:)。