Javascript 带主干的SPA需要.js优化器
我构建了一个大型主干应用程序(很多视图、模型、集合),并使用require.js加载模块。一切按预期顺利进行 现在我想将这个应用程序发布到网络上,但我想通过将所有内容压缩到一个(单个?)文件来优化网络请求。我已经阅读了Require.JS Optimizer,安装了node.JS并创建了一个构建文件。 以下是我的测试:Javascript 带主干的SPA需要.js优化器,javascript,node.js,backbone.js,requirejs,Javascript,Node.js,Backbone.js,Requirejs,我构建了一个大型主干应用程序(很多视图、模型、集合),并使用require.js加载模块。一切按预期顺利进行 现在我想将这个应用程序发布到网络上,但我想通过将所有内容压缩到一个(单个?)文件来优化网络请求。我已经阅读了Require.JS Optimizer,安装了node.JS并创建了一个构建文件。 以下是我的测试: 创建生成文件而不在模块部分-->中指定单个模块-->我将获得源应用程序的副本,并将所有js文件进行UGLYD。应用程序工作正常,但从网络请求的角度来看,似乎没有任何变化 用一个模
app
|
--- scripts
|
--- libs
--- collections
--- views
--- models
--- main.js
--- styles
--- templates
--- index.htm
在“app”文件夹的同一级别,我创建了一个包含r.js和build.js的build文件夹,其内容如下:
({
//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
如果我运行“compiled”main.js,我会返回以下错误:
Uncaught Error: Mismatched anonymous define() module
有什么想法吗?根据应用程序的要求,您可以选择
- 将所有文件连接到单个文件中
- 按模块连接
将所有内容连接到单个文件对于小型应用程序来说效果很好,但无法扩展到大型应用程序。requirejs为此提供了详细的文档。如果每件事都是对的,无论你采用什么方法,那就不应该出现错误。请提供有关您所遇到错误的更多信息,这可能有助于人们正确回答您的问题 我有一个名为app的文件夹,里面有我的应用程序。在同一级别的应用程序中,我有另一个名为build的文件夹,其中包含r.js和build.js,这是一个类似于Require.js网站上的配置文件。我在该文件中定义了appDir、baseUrl、maincigfile、dir、路径和模块参数。如果我在build文件夹中使用命令“node r.js-o build.js”启动build,几分钟后,我会有另一个文件夹,其中包含所有的应用程序和“concatenadded”main.js。如果我尝试运行该应用程序,会出现以下错误:“未捕获错误:不匹配的匿名define()模块”。这有帮助吗?