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

1 回答 1

0

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

但是... Weyland 现在被认为是构建 Durandal 应用程序的过时方法:请参阅此链接

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

所以这个问题的解决方案是从丑化过程中排除 main-build.js 文件,或者......在运行构建之前将其删除。

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

cd %1
del /Q "App\\main-built.js" 
weyland build
于 2014-10-31T22:15:08.817 回答