JS作为RequireJS中的单个JavaScript文件

时间:2013-01-25 01:24:01

标签: javascript requirejs

我正在使用RequireJS,但我们的项目已经变得非常庞大。

requirejs([
    'util/utils',
    'util/image_store',
    'models/user_model',
    'util/analytics'
    ],function() { /* do start here */ });

我已经采用了这个初始组,并且我已将这些文件连接在一起,所以现在我想这样做:     requirejs([         'initial_download.js'         ],function(){/ * do start here * /});

现在我如何让其他文件知道,那就说使用models / user_model他们不需要自己下载它需要已经定义了吗?

在假设的UserView.js中就像这样:

define(['models/user_model'],function(UserModel) {
   function UserView() { /* */ }
});

2 个答案:

答案 0 :(得分:1)

连接文件时,需要将每个文件的内容包装到命名的define调用中。这样,当它加载时,模块就像从单个文件加载一样恢复自身:

;(function() {

    define('util/utils',function(){
        return utilsObject
    })

    define('util/image_store',function(){
        return imageStoreObject
    })

    define('models/user_model',function(){
        return userModelObject
    })

    define('util/analytics',function(){
        return analyticsObject
    })

    // you need this to make this an AMD module.
    // it does not matter what it returns, as your
    // main payload is above.
    define(function(){})

})();

答案 1 :(得分:0)

我相信您可以使用Require.js优化器为您执行此操作:http://requirejs.org/docs/optimization.html