我是RequireJS的新手,还有数以百万计的新前端工具,而且它是压倒性的。我正在开始一个新的多页Backbone应用程序。它在很多方面与以前的项目非常相似。我的方法是采用新的方法,使其更加模块化和可重用。之前的应用程序是使用Sinatra构建的,用于路由请求和vanilla Backbone。我使用新应用程序的方法是使用RequireJS在每页上加载某些模块,同时仍然通过Sinatra进行路由。我想保留一些类似的东西,以便可能使这种方法向后兼容,可能会重写以前的应用程序,同时仍然以更模块化的方向移动东西。
无论如何,我在之前的应用程序中安装了sinatra-asset-pipeline,现在也在新应用程序中。我有一个定义明确的应用程序结构,新的应用程序和每个页面明确定义的入口点。入口点目录的存根如下:
app/
assets/
project/
bundles/
bundle1.js
bundle2.js
在layout.erb中我按每页加载每个包,如下所示:
<script src=<%= asset_path('require')%> ></script>
<script type="text/javascript">
require(['/assets/global'], function(global) {
// @bundle is defined in each sinatra route
require(["/assets/bundles/<%= @bundle %>"]);
});
</script>
每个捆绑包都需要并加载自己的模块。我知道r.js优化器会查找所需模块的树并将它们合并在一起。我也了解你可以在构建配置中设置模块。我是否能够完全替换资产管道并只使用r.js优化器来优化每个特定的捆绑并在每页上加载它们?