如何使用grunt durandal输出两个文件

时间:2013-11-27 12:39:28

标签: javascript gruntjs durandal

我正在努力优化我的Durandal SPA。它似乎工作得很好,但现在我想输出一个名为libs.js的第二个文件,这是我所有必需库的合并uglified版本,但我的第一个dist被忽略了,但我得到的唯一文件是main-built.js

我只获得一个文件,因此永远不会创建app / libs.js。我也没有咕噜咕噜的错误。

这是我的Gruntfile:

module.exports = function (grunt) {

    grunt.initConfig({
        durandal: {
            libs: {
                src: [
                    "../scripts/jquery-1.9.1.js",
                    "../scripts/typeahead.js",
                    "../scripts/jquery-ui-1.10.3.js",
                    "../scripts/knockout-3.0.0rc.js",
                    "../scripts/toastr.js",
                    "../scripts/q.js",
                    "../scripts/breeze.min.js",
                    "../scripts/bootstrap.js",
                    "../scripts/moment.js",
                    "../scripts/lodash.js",
                    "../scripts/respond.js",
                    "../scripts/knockout-sortable.js",
                    "../scripts/knockout-bootstrap.js",
                    "../scripts/knockout.validation.js",
                ],
                dest: 'scripts/libs.js',
                options: {
                    uglify2: {
                        compress: {
                            global_defs: {
                                DEBUG: false
                            }
                        }
                    }
                }
            },
            dist: {
                src: [
                    "app/**/*.*",
                    "scripts/durandal/**/*.*"
                ],
                options: {
                    baseUrl: "app/",
                    mainPath: "app/main.js",
                    out: "app/main-built.js",

                    uglify2: {
                        compress: {
                            global_defs: {
                                DEBUG: false
                            }
                        }
                    }
                }
            }
        }
    });
    grunt.loadTasks('tasks');
    grunt.registerTask('default', ['durandal']);
};

1 个答案:

答案 0 :(得分:1)

这是JavaScript。如果您创建像{ a: 'a', a: 'b' }这样的对象,则第一个密钥将由VM覆盖第二个密钥。

而不是像这样配置:

dist: {
    // config goes here
},
dist: {
    // config goes here
}

尝试

libs: {
    // config goes here
},
main: {
    // config goes here
}