【问题标题】:Grunt-Browserify Ignore OptionGrunt-Browserify 忽略选项
【发布时间】:2015-03-13 14:34:47
【问题描述】:

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

【问题讨论】:

    标签: javascript reactjs browserify grunt-browserify


    【解决方案1】:

    做了一些横向谷歌搜索,在堆栈上找到了一个帖子Here

    您似乎可以将文件添加到 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');
    }
    

    【讨论】:

    • 您的方法解决了我的问题,但排除/忽略存在问题。我在这里发布了一个关于它的现有线程:github.com/jmreidy/grunt-browserify/issues/348
    • @ekkis 很高兴它对你有用,我最终放弃了 grunt 和 browserify,现在改用 gulp 和 webpack,因为它更适合我们的需求
    • 使用 grunt/browserify/karma/mocha/chai 对我来说是一个陡峭的学习曲线。你觉得 gulp/webpack 怎么样?我一直很好奇,在某些时候我应该调查一下他们
    • 真的很喜欢 gulp 和 webpack,它允许我们为构建过程增加更多复杂性,gulp 是代码而不是配置,因此您可以编写自己的自定义任务
    猜你喜欢
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多