我们可以通过给它命名来在 requireJS 中创建一个模块:
define("name",[dep],function(dep) {
// module definition
});
或者我们可以创建一个不包含名称的:
define([dep],function(dep) {
// module definition
});
创建模块的更好方法是什么?我知道 RequireJS 建议避免分配模块名称。
但我想知道在什么情况下我们可以不必给模块命名。这会影响使用吗?每种方式的优点和缺点是什么?
这就是requirejs的内容文档 http://requirejs.org/docs/api.html#modulename关于命名模块的主题说:
这些通常由优化工具生成。您可以自己显式命名模块,但这会降低模块的可移植性——如果将文件移动到另一个目录,则需要更改名称。通常最好避免对模块名称进行编码,而只是让优化工具刻录模块名称。优化工具需要添加名称,以便可以将多个模块捆绑在一个文件中,以便在浏览器中更快地加载。
但假设你want您的模块有一个众所周知的名称,以便始终可以从任何其他模块以相同的方式要求它。那么您需要使用define
用名字打电话?一点也不。您可以使用paths http://requirejs.org/docs/api.html#config-paths在你的配置中:
paths: {
'jquery': 'external/jquery-1.9.1',
'bootstrap': 'external/bootstrap/js/bootstrap.min',
'log4javascript': 'external/log4javascript',
'jquery.bootstrap-growl': 'external/jquery.bootstrap-growl',
'font-awesome': 'external/font-awesome'
},
通过此配置,jQuery 可以被要求为"jquery"
, Twitter Bootstrap 为"bootstrap"
等。最佳做法是离开通话define
的名字优化器 http://requirejs.org/docs/optimization.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)