Grunt-Browserify 忽略选项

Grunt-Browserify Ignore Option

我有一个 React 应用程序,我正在通过 Grunt 对其进行转换、丑化和浏览器测试。我的 grunt 文件看起来像这样...

module.exports = function(grunt) {
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    browserify: {
        dist: {
            files: {
                './Scripts/build/App.js': ['./Scripts/src/**/*.js']
            },
            options: {
                browserifyOptions: {
                    debug: true
                },
                transform: [ require('grunt-react').browserify ],
                ignore: './Scripts/src/**/*-test.js'
            }
        }
    },
    uglify: {
        my_target: {
            files: {
                './Scripts/build/App-min.js': ['./Scripts/build/App.js']
            }
        }
    },
    watch: {
        scripts: {
            files: ['./Scripts/src/**/*.js'],
            tasks: ['browserify', 'uglify'],
            options: {
                spawn: false
            },
        },
    },

})

grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-contrib-watch');
}

您会注意到 browserify 任务的忽略 属性 告诉它忽略文件名中带有 -test.js 的任何文件,原因是我的测试直接存储在文件夹旁边我正在测试的文件(这似乎是查看 React Flux 示例时的惯例)并且我不希望将测试文件捆绑到我的 app.js 文件中。谁能告诉我我是否做错了,因为到目前为止它似乎根本不起作用?测试文件被捆绑到 app.js 中,然后我收到有关未定义笑话的控制台错误。

进行了一些横向谷歌搜索,在堆栈 Here

上找到了一个 post

您似乎可以将文件添加到 src 数组,如果您在它们前面加上“!”它将它们标记为被忽略的文件。

我现在工作的 grunt 文件....

module.exports = function(grunt) {
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    browserify: {
        dist: {
            files: {
                './Scripts/build/App.js': ['./Scripts/src/**/*.js', '!./Scripts/src/**/*-test.js']
            },
            options: {
                browserifyOptions: {
                    debug: true
                },
                transform: [ require('grunt-react').browserify ]
            }
        }
    },
    uglify: {
        my_target: {
            files: {
                './Scripts/build/App-min.js': ['./Scripts/build/App.js']
            }
        }
    },
    jest: {
        options: {
            coverage: true,
            testPathPattern: /.*-test.js/
        }
    },
    watch: {
        scripts: {
            files: ['./Scripts/src/**/*.js'],
            tasks: ['browserify', 'uglify'],
            options: {
                spawn: false
            },
        },
    },

})

grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-jest');
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-contrib-watch');
}