我想将多个模块合并到一个文件中,但是找不到有关如何执行此操作的正式文档。现在,我正在使用下面的方法,它可以工作,但是我想知道以下内容:

  • 技术上正确吗?
  • RequireJS如何检查模块是否已加载?通过使用模块名还是文件名?
  • 该解决方案在某些情况下会多次初始化模块吗?

  • index.html
    <script src="require.js"></script>
    <script>
    requirejs.config({
        paths: {
            'a': 'test',
            'b': 'test'
        }
    });
    
    require(['a', 'b'], function () {
        console.log('a & b loaded');
    });
    </script>
    

    test.js
    console.log('loading test.js');
    // I have some init here, like "Avoid `console` errors in IE"
    
    define('a', function () {
        console.log('a module');
    });
    
    define('b', function () {
        console.log('b module');
    });
    

    最佳答案

    这是旧的,但是我碰到了。
    当然,您可以在同一文件中有多个定义,是的,这很有意义。

    您唯一需要做的就是使用命名定义。

    define('module1', ['dependency1', 'dependency2'], function (d1, d2) {
        // your code here
    }
    

    认为有时候您不需要动态加载资源,实际上可能需要在开始时全部加载它们,因此在打包时共同创建一个串联/最小化的js文件是最好的解决方案。

    因此,您将不会利用“延迟加载”的优势,但仍可以使用RequireJS以模块化方式设计应用程序。

    09-30 16:12
    查看更多