使用 Durandal 的优化伴侣 Weyland,我们可以将所有 .js 和 .html 文件合并到 main-built.js 中,并使用 Almond 跳过 RequireJS。我们按照文档中的描述执行此操作:http:
//durandaljs.com/documentation/Weyland.html和
http://durandaljs.com/documentation/Automating-Builds-with-Visual-Studio.html
(是的,它是一个 ASP .NET MVC 项目)
然而,我们看到 main-built.js 越来越大。
Weyland 的考虑因素是什么?我们能以不同的方式处理这个问题吗?我们应该以不同的方式处理这个问题吗?如果我们的项目增长,主构建文件也会增长。然后启动负载将增加,并且可能并非所有用户都需要下载整个项目(安全方面的用户来自不同的区域)。
希望有人能对此有所了解吗?
当前的 Weyland 配置:
exports.config = function (weyland) {
weyland.build('main')
.task.jshint({
include: 'App/**/*.js'
})
.task.uglifyjs({
include: ['App/**/*.js', 'Scripts/durandal/**/*.js']
})
.task.rjs({
include: ['App/**/*.{js,html}', 'Scripts/durandal/**/*.js'],
loaderPluginExtensionMaps: {
'.html': 'text'
},
rjs: {
name: '../Scripts/almond-custom.min', //to deploy with require.js, use the build's name here instead
insertRequire: ['main'], //not needed for require
baseUrl: 'App',
wrap: true, //not needed for require
paths: {
'text': '../Scripts/text',
'durandal': '../Scripts/durandal',
'plugins': '../Scripts/durandal/plugins',
'transitions': '../Scripts/durandal/transitions',
'knockout': 'empty:',
'bootstrap': 'empty:',
'jquery': 'empty:',
'i18next': '../Scripts/i18next.amd.withJQuery-1.7.2.min'
},
inlineText: true,
//optimize: 'uglify2',
optimize: 'none',
pragmas: {
build: true
},
stubModules: ['text'],
keepBuildDir: true,
out: 'App/main-built.js'
}
});
}