有没有办法创建一个 javascript 微型库(没有依赖项的库),支持以下所有模块格式:
- 异步模块定义
- CommonJS
- 将库的导出公开为全局命名空间对象(无加载程序)
是的,我把这个答案归功于ded https://github.com/ded/和他很棒的模块:
(function(name, definition) {
if (typeof module != 'undefined') module.exports = definition();
else if (typeof define == 'function' && typeof define.amd == 'object') define(definition);
else this[name] = definition();
}('mod', function() {
//This is the code you would normally have inside define() or add to module.exports
return {
sayHi: function(name) {
console.log('Hi ' + name + '!');
}
};
}));
然后可以使用:
-
在 AMD 中(例如使用 requireJS):
requirejs(['mod'], function(mod) {
mod.sayHi('Marc');
});
-
在 commonJS 中(例如 NodeJS):
var mod = require('./mod');
mod.sayHi('Marc');
-
全局(例如 HTML):
<script src="mod.js"></script>
<script>mod.sayHi('Marc');</script>
这个方法需要得到更多的宣传——如果 jQuery 和 co.开始使用它生活会轻松很多!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)