1

我正在使用 RequireJS,但我们的项目已经变得相当大。

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

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

现在我如何让其他文件知道,比如使用模型/用户模型,他们不需要自己下载需要已经定义的文件?

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

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

2 回答 2

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(){})

})();
于 2013-01-25T04:04:29.897 回答
0

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

于 2013-01-25T01:27:23.450 回答