我有一个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的控制台错误。
答案 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');
}