我已经构建了一个大的Backbone应用程序(很多视图,模型,集合),并使用require.js进行模块加载。一切按预期顺利进行。Require.js优化器,用于带Backbone的SPA
现在我想推出网络这个应用程序,但我想优化网络请求,通过压缩(单个?)文件上的所有内容。我读过Require.JS优化器,安装了node.js并创建了一个构建文件。 这是我的测试:
创建构建文件没有指定模块部分单个模块 - >我获得源应用程序的一个副本,其中uglyfied所有js文件。应用程序可以工作,但从网络请求的角度看,似乎没有任何变化。
使用单个模块(即我的main.js文件)创建构建文件 - >我获得源应用程序的副本,其中所有js文件都很糟糕,并且我假设有一个巨大的新main.js文件它包含了它的所有依赖关系(即所有使用的文件)。这将解决网络请求问题,但该应用程序根本不启动,开始给我奇怪的错误。
哪个是使用Require.JS优化器的正确方法?我想#2,但你有什么看法?如果这是正确的做法,我应该找出如何解决这些错误......
感谢
编辑
这是我的应用程序文件夹结构:
app
|
--- scripts
|
--- libs
--- collections
--- views
--- models
--- main.js
--- styles
--- templates
--- index.htm
在我创建了一个包含r.js和build.js的构建文件夹,其内容如下:
({
//Directory relativa a questo file dove si trova l'app
appDir: '../app',
//Directory relativa ad appDir di dove si trovano i moduli
baseUrl: 'scripts',
//Percorso verso il file main
mainConfigFile: '../app/scripts/main.js',
paths:
{
jquery: 'libs/jquery/jquery-min',
jqueryui: 'libs/jqueryui/jquery-ui-1.10.2.min',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-min',
kendo: 'libs/kendo/kendo.web.min',
kendo_it: 'libs/kendo/amd/kendo.culture.it.min',
relational: 'libs/relational/backbone-relational',
nested: 'libs/nested/backbone-nested-v1.1.2.min',
rivets: 'libs/rivets/rivets.min',
i18n: 'libs/i18next/i18next.amd.withJQuery-1.6.3',
jvalid: 'libs/jqueryvalidate/jquery.validate.min',
chartjs: 'libs/chartjs/chart.min',
toastr: 'libs/toastr/toastr.min',
templates: '../templates'
},
//Where to save the output
dir: '../app-build',
modules:
[
{
name: 'main'
}
]
})
我启动使用此命令的构建过程:
node r.js -o build.js
如果我运行 “编译” main.js,我得到这个错误回:
Uncaught Error: Mismatched anonymous define() module
任何想法?
我有一个文件夹叫我的应用程序里面的应用程序。在同一级别的应用程序中,我有另一个名为build的文件夹,其中包含r.js和build.js,这是一个配置文件,可以在Require.js网站上找到。我在该文件中定义了appDir,baseUrl,mainConfigFile,dir,路径和模块参数。如果我在构建文件夹内使用命令“node r.js -o build.js”启动构建,几分钟后,我有另一个文件夹,其中包含所有应用程序+“concatendated”main.js.如果我尝试运行该应用程序,则会出现此错误:“未捕获的错误:不匹配的匿名define()模块”。 – Marconline
这会帮助吗? http://stackoverflow.com/questions/15371918/mismatched-anonymous-define-module –