Concat指定了js文件并将所有其他js文件复制到输出目录

时间:2014-02-25 23:12:48

标签: javascript gruntjs grunt-contrib-concat

我想在我的src/目录中连接几个js文件,比如每个页面上需要的文件以及需要多个文件的某些特定页面。 我希望用当前目录结构复制的其余文件。这些是仅在一个页面上使用的文件,并且是该页面的唯一页面特定的jsfile。

所以我想排除第一类任务的srcfiles属性,并排除上一个任务中的那些属性。

如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以使用创建一个数组,其中包含您连接外部任务范围的所有文件。然后循环遍历该数组,在javascript之类的任务中连接数组中列出的uglify文件,并创建另一个任务,通过copy等其他任务复制所有文件。

但是,当您使用相同的预定义数组列出 not 将包含在copy任务中的异常时,就会发生魔力。

你可以像:

这样的前缀
uglify: {
    dist: {
        files: {
            'dest/output.min.js': [
                'app/js/**/concatenate-*.js',
            ]
        }
    }
}

copy: {
    dist: {
        src : [
            'app/js/**/*.js',
            // exclude files
            '!app/js/**/concatenate-*.js'
        ]
    }
}

请注意,我只在每个任务中添加了相关部分,通常任务需要的配置多于此。