Javascript RequireJS优化器在没有一个“;附件js“;以及依赖于内联模块的模块?

Javascript RequireJS优化器在没有一个“;附件js“;以及依赖于内联模块的模块?,javascript,requirejs,Javascript,Requirejs,在RequireJS示例中,它显示了您可以从脚本标记引用app.js(或任何您想要调用的启动程序文件),如下所示: <script data-main="js/app.js" src="js/require.js"></script> 由于我无法控制的原因,我不能这样做。模板层中生成的几个动态变量需要保留。因此,我创建了一个内联的'config'模块,其他模块可以读取 <script type="text/javascript"> def

在RequireJS示例中,它显示了您可以从脚本标记引用app.js(或任何您想要调用的启动程序文件),如下所示:

<script data-main="js/app.js" src="js/require.js"></script>

由于我无法控制的原因,我不能这样做。模板层中生成的几个动态变量需要保留。因此,我创建了一个内联的'config'模块,其他模块可以读取

<script type="text/javascript">
        define('config', function() { 
            return {
                markup_id: {
                    "content": "search",
                    "page": "index",
                    "media": "mobile"
                },
                page_context: {
                    "siteconfig": {
                        "mobile_video_player_id": /* */,
                        "mobile_video_player_key": /* */,
                        "mobile_ad_site": /* */,
                        "omniture_mobile_env": /* */,
                        "searchserver": /* */,              
                    },
                    "omniture": {
                        "gn": /* */,

                    }
                }
            }
        });
    </script>       

定义('config',函数(){
返回{
标记标识:{
“内容”:“搜索”,
“页面”:“索引”,
“媒体”:“移动”
},
页面上下文:{
“站点配置”:{
“移动视频播放器id”:/**/,
“手机视频播放器按键”:/**/,
“移动广告网站”:/**,
“omniture_mobile_env”:/***/,
“searchserver”:/***/,,
},
“omniture”:{
“gn”:/**/,
}
}
}
});
我所做的是为每个模板放置一个内联require.config。例如(删除了特定路径信息):


/*此代码位于脚本标记内的模板页上*/
require.config({
baseUrl://**,
路径:{
“jquery”:/**/,
“jquery mobilead”:/**/,
“jquery photogalleryswipe”:/**/
},
/*强制执行jQuery插件的排序-这需要jQuery*/
垫片:{
“jquery mobilead”:{
部门:['jquery'],
导出:“jQuery.fn.mobileAd”
},
“jquery photogalleryswipe”:{
部门:['jquery'],
导出:“jQuery.fn.photoGallerySwipe”
},
“画廊”:{
deps:['jquery-photogalleryswipe','jquery-mobilead']
}
},
urlArgs:'buildlife=@buildlife@'
});
需要(['jquery','site','gallery','jquery photogalleryswipe','jquery mobilead'],函数($,site,gallery){
//当所有依赖项
//上面列出的已加载。请注意,此函数可能会
//在加载页面之前调用。
//此回调是可选的。
/*初始化代码*/
$(文档).ready(函数(){
/*站点范围的代码-调用构造函数进行初始化*/
site.init();
/*主页包含对函数的引用-执行函数*/
gallery.initGallery();
});
}
);
我假设优化器无法优化模板中的代码

但是根据RequireJS API文档,我有模块JS文件。
/模块/gallery.js /模块/channel.js /模块/site.js /*等等*/


这些模块确实依赖于其他模块,但这些模块依赖于“配置”模块,该模块与模板内联定义。如果我对这些文件运行优化器,优化器会正常工作吗,因为其中一个模块config是模板?

我想我通过阅读解决了自己的问题

我已经将模板变量重新构造为require全局对象,并在require.js之前声明了它。现在,模板仍然可以生成这些值,但由于require.config和require代码可以放入外部JS文件中,因此优化器现在应该能够看到这些文件。我还没有试过运行优化器

<script>
        /* This script block is in the template */
        var require = {
            config: {
                markup_id: {
                "content": "search",
                "page": "index",
                "media": "mobile"
                },
                page_context: {
                   "siteconfig": {
                    "mobile_video_player_id": /* */,
                    "mobile_video_player_key": /* */,
                    "mobile_ad_site": /* */,
                    "omniture_mobile_env": /* */,
                    "searchserver": /* */,              
                  },
                "omniture": {
                    "gn": /* */,

                }
            }
        };
    </script>
 <script data-main="/m/j/main-search" src="/m/j/require.js"></script>

/*此脚本块位于模板中*/
var require={
配置:{
标记标识:{
“内容”:“搜索”,
“页面”:“索引”,
“媒体”:“移动”
},
页面上下文:{
“站点配置”:{
“移动视频播放器id”:/**/,
“手机视频播放器按键”:/**/,
“移动广告网站”:/**,
“omniture_mobile_env”:/***/,
“searchserver”:/***/,,
},
“omniture”:{
“gn”:/**/,
}
}
};
<script>
        /* This script block is in the template */
        var require = {
            config: {
                markup_id: {
                "content": "search",
                "page": "index",
                "media": "mobile"
                },
                page_context: {
                   "siteconfig": {
                    "mobile_video_player_id": /* */,
                    "mobile_video_player_key": /* */,
                    "mobile_ad_site": /* */,
                    "omniture_mobile_env": /* */,
                    "searchserver": /* */,              
                  },
                "omniture": {
                    "gn": /* */,

                }
            }
        };
    </script>
 <script data-main="/m/j/main-search" src="/m/j/require.js"></script>