在AMD规范中有两个全局函数,一个是require一个是define,其中require用于加载模块,define用于定义模块,require函数中有两个参数,第一个是模块的名称数组,第二个是加载模块成功之后的回调函数,用法为:require([module], callback);

自定义模块步骤
1. 定义模块
2. 设置Dojo加载包参数
3. 引入Dojo.js库
4. 通过require使用自定义模块
具体实现

1.定义模块-->新建工程文件夹web-->在web文件夹下载建dojodefinetest文件夹-->在里面新建一个js文件名为js.js
js.js代码块:

define(function(){
    return {
        deal: function () {
            alert(10);
        }
    };
});

2.在工程文件夹web下面新建一个html文件名为dojodefinetest.html添加script标签编写dojoConfig配置代码:

//定义dojo自定义模块加载包路径
        <script>
        //定义dojo自定义模块加载包路径
        var dojoConfig = {
            packages: [
                {
                    name: 'dojodefinetest',//包名
                    location: location.pathname.replace(/\/[^/]*$/,'') + '/dojodefinetest'
                }
            ]
        };
    </script>

3.在加载dojo.js文件库:

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>

4.测试使用自定代码块:

<script>
    // 使用自定义的模块
    require(['dojodefinetest/js'], function (js) {
        js.deal();
    });
</script>

结果弹出10:
index.html完整代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AMD自定义模块</title>
    <script>
        //定义dojo自定义模块加载包路径
        var dojoConfig = {
            packages: [
                {
                    name: 'dojodefinetest',//包名
                    location: location.pathname.replace(/\/[^/]*$/,'') + '/dojodefinetest'
                }
            ]
        };
    </script>
    <!--引入dojo库-->
    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
</head>
<body>
<script>
    // 使用自定义的模块
    require(['dojodefinetest/js'], function (js) {
        js.deal();
    });
</script>
</body>
</html>

参考文章:https://blog.csdn.net/lovecarpenter/article/details/53932407https://blog.csdn.net/yongye_/article/details/62429158