如何忽略文件是个难题



背景

大约30分钟前,我刚开始使用grunt。所以请耐心等待。

但我有一个相当简单的脚本,它会查看我的js,然后为我将其全部压缩到一个文件中。

代码

"use strict";
module.exports = function (grunt) {
    // load all grunt tasks
    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
            options: {
                beautify: true,
                report: 'gzip'
            },
            build: {
                src: ['docroot/js/*.js', 'docroot/components/pages/*.js', 'docroot/components/plugins/*.js'],
                dest: 'docroot/js/main.min.js'
            }
        },
        watch: {
            options: {
                dateFormat: function(time) {
                    grunt.log.writeln('The watch finished in ' + time + 'ms at' + (new Date()).toString());
                    grunt.log.writeln('Waiting for more changes...');
                }
            },
            js: {
                files: '<%= uglify.build.src %>',
                tasks: ['uglify']
            }
        }
    });
    grunt.registerTask('default', 'watch');
}

问题

每次编译时都会包含我的main.min.js。这意味着我的min.js得到了2x、4x、8x、16x等。最好的方法是添加一个异常并忽略main.min.js吗?

在src数组的添加

'!docroot/js/main.min.js'

这将排除它!将其转换为排除。

http://gruntjs.com/api/grunt.file#grunt.file.expand

匹配以开头的模式的路径!将从返回的数组中排除。模式是按顺序处理的,所以包含和排除顺序很重要。

这并不是grunt uglify特有的,但任何使用grunt约定指定文件的任务都将以这种方式工作。

不过,作为一般建议,我建议将构建的文件放在源文件之外的其他地方。就像在根dist文件夹中一样。

最新更新