Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization Sinatra,主干网,RequireJS-我可以用r.js优化器替换资产管道吗?_Optimization_Backbone.js_Sinatra_Requirejs_R.js - Fatal编程技术网

Optimization Sinatra,主干网,RequireJS-我可以用r.js优化器替换资产管道吗?

Optimization Sinatra,主干网,RequireJS-我可以用r.js优化器替换资产管道吗?,optimization,backbone.js,sinatra,requirejs,r.js,Optimization,Backbone.js,Sinatra,Requirejs,R.js,我对RequireJS和数以百万计的新前端工具还不熟悉,这是一个巨大的挑战。我正在启动一个新的多页面主干应用程序。它在许多方面与以前的项目非常相似。我的方法是采用新的方法,使其更加模块化和可重用。上一个应用程序是使用Sinatra构建的,用于路由请求和主干。我使用新应用程序的方法是使用RequireJS在每个页面上加载某些模块,同时仍然通过Sinatra路由。我想保持一些相似的东西,以便可能使这种方法向后兼容,以潜在地重写以前的应用程序,同时仍然朝着更模块化的方向移动 无论如何,我在以前的应用程

我对RequireJS和数以百万计的新前端工具还不熟悉,这是一个巨大的挑战。我正在启动一个新的多页面主干应用程序。它在许多方面与以前的项目非常相似。我的方法是采用新的方法,使其更加模块化和可重用。上一个应用程序是使用Sinatra构建的,用于路由请求和主干。我使用新应用程序的方法是使用RequireJS在每个页面上加载某些模块,同时仍然通过Sinatra路由。我想保持一些相似的东西,以便可能使这种方法向后兼容,以潜在地重写以前的应用程序,同时仍然朝着更模块化的方向移动

无论如何,我在以前的应用程序中安装了sinatra资产管道,现在也在新应用程序中安装了sinatra资产管道。我有一个定义良好的应用程序结构,包括新应用程序和每个页面定义良好的入口点。入口点的目录存根如下所示:

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>

要求(['/assets/global'],函数(全局){
//@bundle在每个sinatra路由中定义
需要([“/资产/捆绑包/”]);
});
每个捆绑包都需要并加载自己的模块。我知道r.js优化器将查找所需模块的树并将它们合并在一起。我还了解到,您可以在构建配置中设置模块。我是否能够完全替换资产管道,只需使用r.js优化器优化每个特定捆绑包,并在每页的基础上加载它们