咕噜我的代码在concat.js中重复

时间:2013-12-22 21:23:46

标签: javascript gruntjs

这是我的grunt配置文件:

module.exports = function (grunt) {

    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-karma');
    grunt.loadNpmTasks('grunt-contrib-sass');

    grunt.initConfig({
        uglify: {
            build: {
                src: 'app/concat.js',
                dest: 'app/concat.min.js'
            }
        },

        concat: {
            options: {
                separator: ';',
            },
            dist: {
                src: ['app/js/**/*.js', '!app/concat.js',
                dest: 'app/concat.js'
            }
        },

        watch: {
            karma: {
                files: ['app/js/**/*.js', 'jasmine/spec/**/*.js'],
                tasks: ['karma:unit:run']
            },

            concat: {
                files: ['app/js/**/*.js', '!app/concat.js'],
                tasks: ['concat']
            },

            live: {
                files: ['app/js/**/*.js', '!app/concat.js', 'app/partials/**/*.html', 'WEB-INF/jsp/panther.html', 'css/new_style.css', 'css/style.css'],
                options: {
                    livereload: true
                }
            }
        },

        karma: {
            unit: {
                configFile: 'jasmine/karma.conf.js',
                background: true
            }
        },

        sass: {
            dist: {
                files: {
                    'css/new_style.css': 'css/sass/new_style.scss'
                }
            }
        }
    });


    grunt.registerTask('default', ['karma:unit:start', 'concat', 'watch']);
}

我做手表并且在代码更改时触发单元测试和连接,

我的感觉是这一行:

src: ['app/js/**/*.js', '!app/concat.js',

无法正常工作(至少对于第二部分)

1 个答案:

答案 0 :(得分:2)

看起来您正在构建与源相同的目录/文件。我认为这是一个坏主意。

您应该将您正在处理的文件保存在一个目录中(例如src)并将Grunt任务输出到另一个目录(例如app)。这至少可以降低重复的风险。

如果您有一个任务需要处理另一个任务的输出,请将第一个任务输出到一个临时目录,然后从中读取第二个任务。