Requirejs 如何使用r.js optimizer优化大型js应用程序+;从CDN加载诸如jquery、引导之类的库?
我们已经用许多不同的库(bootstrap、gmap、momentjs等)构建了一个巨大的主干木偶应用程序。即使是在生产模式下,当我将所有内容组合成一个单一内容时,所有内容都很有魅力。为了提高性能,现在应该从CDN加载大多数库 但这似乎不像预期的那么容易。我从这个很棒的教程()开始,并添加了一个负责加载外部libs的基础结构模块 infrastructure.jsRequirejs 如何使用r.js optimizer优化大型js应用程序+;从CDN加载诸如jquery、引导之类的库?,requirejs,concatenation,single-page-application,minify,r.js,Requirejs,Concatenation,Single Page Application,Minify,R.js,我们已经用许多不同的库(bootstrap、gmap、momentjs等)构建了一个巨大的主干木偶应用程序。即使是在生产模式下,当我将所有内容组合成一个单一内容时,所有内容都很有魅力。为了提高性能,现在应该从CDN加载大多数库 但这似乎不像预期的那么容易。我从这个很棒的教程()开始,并添加了一个负责加载外部libs的基础结构模块 infrastructure.js define([ 'jquery' ], function($) { 'use strict'; }); main
define([
'jquery'
], function($) {
'use strict';
});
main.js(在过去几个月里增长了一点:D)
grunt配置中包含的build.js部分
requirejs: {
compile: {
options: {
mainConfigFile: 'app/scripts/main.js',
paths: {
jquery: 'empty:'
},
modules: [{
name: 'main',
exclude: [
'infrastructure'
]
}, {
name: 'infrastructure'
}],
findNestedDependencies: true,
preserveLicenseComments: false,
stubModules: ['text'],
inlineText: true,
optimize: 'none',
dir: '<%= build.dest %>/app/scripts/',
wrapShim: true
}
}
}
我认为这个问题不会发生,因为在main.js中加载应用程序的所有其他部分和依赖库之前,应用程序需要制造模块。但main.js中的所有依赖项似乎仍在制造模块之前加载
现在我有点困惑,不知道如何继续,甚至不知道从哪里开始
有没有人已经使用CDN的libs和r.js优化过如此大小的应用程序。此外,您对连接/缩小过程+从CDN加载LIB有什么看法?它真的提高了加载性能吗
thx预先为引导添加对JQuery的依赖性。从服务器加载JQuery时,它的加载速度足以在引导启动时可用。既然JQuery来自CDN,那么加载它需要更多的时间,并且在引导启动时不可用
requirejs: {
compile: {
options: {
mainConfigFile: 'app/scripts/main.js',
paths: {
jquery: 'empty:'
},
modules: [{
name: 'main',
exclude: [
'infrastructure'
]
}, {
name: 'infrastructure'
}],
findNestedDependencies: true,
preserveLicenseComments: false,
stubModules: ['text'],
inlineText: true,
optimize: 'none',
dir: '<%= build.dest %>/app/scripts/',
wrapShim: true
}
}
}
Uncaught Error: Bootstrap's JavaScript requires jQuery