Weyland产出的考虑因素

时间:2014-03-20 09:40:56

标签: durandal-2.0

使用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'
            }
        });
}

1 个答案:

答案 0 :(得分:0)

我不知道这对您的情况是否有帮助,但显然在我的情况下它有助于在weyland构建过程之前删除main-built.js文件。 您还应确保App目录中的js文件不包含缩小(丑化)的JS代码,因为重新缩小会使文件稍大。

然而...... Weyland现在被认为是构建Durandal应用程序的过时方法:see this link for that

我正在处理运行Weyland构建的问题开始需要永远。 原因很明显是uglifying main-built.js文件花了很多时间 这当然是首先不应该被丑化的文件。

因此,解决此问题的方法是从uglyfication进程中排除main-build.js文件,或者......在运行构建之前删除它。

我找不到快速格式化uglify配置以排除文件的方法,所以我修改了执行命令以在构建之前删除文件:

cd %1
del /Q "App\\main-built.js" 
weyland build