Grunt-Browserify Ignore Option
У меня есть приложение React, которое я трансформирую, выворачиваю и проверяю через 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');
}
Вы заметите, что свойство ignore задачи browserify указывает ей игнорировать любой файл с -test.js в имени файла, потому что мои тесты хранятся в папках непосредственно рядом с файлом, который я тестирую (как кажется, соглашение при рассмотрении примеров React Flux), и я не хочу, чтобы тестовые файлы были включены в мой файл app.js. Может кто-нибудь сказать мне, если я делаю это неправильно, потому что до сих пор, кажется, не работает вообще? Тестовые файлы объединяются в app.js, и затем я получаю консольные ошибки о том, что jest не определен.
1 ответ
Сделал немного бокового поиска в Google и нашел пост в стеке
Похоже, что вы можете добавлять файлы в массив 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');
}