在CMD中,导入和导出模块的代码,都必须放置在define函数中

    1. define(function(require, exports, module){
    2. //模块内部的代码
    3. })

    image.png

    sea.js

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <title>Document</title>
    7. </head>
    8. <body>
    9. <script src="./sea.js"></script>
    10. <script>
    11. // 设置引导文件
    12. seajs.use('./index')
    13. </script>
    14. </body>
    15. </html>

    index.js

    1. define(function(require, exports, module){
    2. // 异步的方式导入
    3. const b = require.async('./b/b',function(b){
    4. console.log(b)
    5. });
    6. const a = require.async('a',function(a){
    7. console.log(a)
    8. })
    9. })

    a.js

    1. define(function(require, exports, module){
    2. const b = require('./b/b'); // 同步的方式导入
    3. console.log('这是a模块的数据');
    4. module.exports = {
    5. data: '这是a模块的数据'
    6. }
    7. })

    b.js

    1. define(function(require, exports, module){
    2. console.log('这是b模块')
    3. module.exports = {
    4. name: ' b模块',
    5. data: '这是b模块的数据'
    6. }
    7. })

    这样会发现他的方式与 AMD 的方式差不多,AMD 是后面添加的。
    image.png
    CMD 也会动态引入js文件,但是会在缓存后删除