ModuleJS,是一个兼容CMD、AMD、UMD规范的js模块管理。
文件名 | 文件大小 | 文件说明 |
---|---|---|
module.min.js.zip | 1.15k | js代码压缩 + zip压缩,用于网络要求更高的生产运营环境 |
module.min.js | 2.4k | js代码压缩,用于生产运营时使用 |
module.js | 7.3k | js源代码,用于开发测试时使用 |
define(function(){
...
})
define("myModule.js",[],function(){
...
})
define(function(){
return ... //返回任意数据类型的模块
})
define(function(require, exports, module){
exports.sayHello = ...
})
define(["exports"], function(exports){
exports.sayHello = ...
})
define(function(require, exports, module){
module.exports = ...
})
define(["exports"], function(exports){
module.exports = ...
})
(
(typeof window == "object" && window) ||
(typeof global == "object" && global)
).myModule = ... //导出任意数据类型的模块
var myModule = require("myModule.js");
或
var myModule = require("myModule.js", false);
var myModule1 = require("myModule1.js");
var myModule2 = require("myModule2.js");
或
var myModule1 = require("myModule1.js", false);
var myModule2 = require("myModule2.js", false);
require("myModule.js", function(myModule){
...
})
或
var myModulePromise = require("myModule.js", true);
myModulePromise.then(function(myModule){
...
})
require(["myModule1.js"...], function(myModule1...){
...
})
或
var myModulesPromise = require(["myModule1.js"...], true);
myModulesPromise.then(function(modules){
var myModule1 = modules[0];
...
})
define(["dependentModule1.js"...], function(dependentModule1...){
var mainModule = {
subMudle1: dependentModule1
};
return mainModule;
})
define(function(){
var mainModule = {
subMudle1: require("dependentModule1.js")
};
return mainModule;
})
define(function(){
var mainModule = {};
return require(["dependentModule1.js"...], function(dependentModule1...){
mainModule.dependentModule1 = dependentModule1;
return mainModule;
})
})
AMD规范指异步模块定义(Asynchronous Module Definition),即通过异步方式加载模块
AMD规范定义模块:
define(function(){
return function(text){
setTimeout(function(){
document.body.innerText = text;
}, 100);
}
})
代码文件:/example/print-amd-module.js
define(["print-amd-module.js"], function(print){
return {
sayHello:function()
{
print("Hi,我的AMD规范定义的模块");
}
}
})
代码文件:/example/hello-amd-module.js
异步方式加载AMD规范定义的模块:
<html>
<head>
<script>
require(["hello-amd-module.js"], function(helloAmdModule){
helloAmdModule.sayHello();
})
</script>
</head>
<body>
加载异步模块中...
</body>
</html>
代码文件:/example/async-load-amd-module-exmaple.html
CMD规范指同步模块定义(Common Module Definition),即通过同步方式加载模块
CMD规范定义模块:
define(function(require, exports, module){
module.exports = function(text){
setTimeout(function(){
document.body.innerText = text;
}, 100);
}
})
代码文件:/example/print-cmd-module.js
define(function(require, exports, module){
exports.sayHello = function(){
var print = require("print-cmd-module.js");
print("Hi,我的CMD规范定义的模块");
}
})
代码文件:/example/hello-cmd-module.js
同步方式加载CMD规范定义的模块:
<html>
<head>
<script>
var helloAmdModule = require(["hello-cmd-module.js"]);
helloAmdModule.sayHello();
</script>
</head>
<body>
加载异步模块中...
</body>
</html>
代码文件:/example/sync-load-cmd-module-exmaple.html
((root, factory) => {
if (typeof define === "function" && define.amd) {
//AMD
define(["dependentModule1", "dependentModule2"...], factory);
} else if (typeof exports === 'object') {
//CommonJS
module.exports = factory(requie("dependentModule1"), requie("dependentModule2")...);
} else {
root.currentModule = factory(root.dependentModule1, root.dependentModule2);
}
})(
(typeof window == "object" && window) || (typeof global == "object" && global),
(dependentModule1, dependentModule2...) => {
//todo
}
)
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )