Grunt-Browserify忽略选项

时间:2015-03-13 14:34:48

标签: javascript reactjs browserify grunt-browserify

我有一个React应用程序,我正在通过Grunt转换,uglifying和browserfying。我的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任务的ignore属性告诉它忽略文件名中包含-test.js的任何文件,原因是我的测试存储在我正在测试的文件旁边的文件夹中(似乎查看React Flux示例时的惯例)我不希望将测试文件捆绑到我的app.js文件中。任何人都可以告诉我,如果我做错了,因为到目前为止它似乎根本没有工作?测试文件被捆绑到app.js中,然后我得到关于未被定义的jest的控制台错误。

1 个答案:

答案 0 :(得分:1)

进行了一些横向Google搜索并在堆栈Here

上找到了帖子

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

我现在工作的咕噜声文件......

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');
}