Я новичок в Grunt, и я пытаюсь использовать модуль grunt-bower-concat node, чтобы объединить все мои компоненты bower в один файл js и css-файл соответственно. Он отлично работает, за исключением того, что я хочу заставить grunt-bower-concat использовать миниатюрные версии компонентов моей акустической системы вместо несжатых версий.Использование библиотек JavaScript внутри Gruntfile
К счастью, он приходит с callback feature где я могу настроить это:
callback: function(mainFiles, component) {
return _.map(mainFiles, function(filepath) {
// Use minified files if available
var min = filepath.replace(/\.js$/, '.min.js');
return grunt.file.exists(min) ? min : filepath;
});
}
И я добавил его к моему Gruntfile:
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
bower_concat: {
all: {
dest: "src/js/<%= pkg.name %>-bower.js",
cssDest: "src/css/<%= pkg.name %>-bower.css",
callback: function(mainFiles) {
return _.map(mainFiles, function(filepath) {
var min = filepath.replace(/\.js$/, '.min.js');
return grunt.file.exists(min) ? min : filepath;
});
}
}
},
...
И он терпит неудачу со следующей ошибкой:
$ /usr/local/bin/grunt --gruntfile /Applications/MAMP/htdocs/proj/Gruntfile.js bower_concat
Running "bower_concat:all" (bower_concat) task
Fatal error: _ is not defined
Process finished with exit code 3
В этом примере используется underscore's map function, и это c leart Grunt не имеет доступа к этой библиотеке.
Как я могу загрузить подчеркивание или использовать его функции внутри моего файла Grunt?
Это было. Спасибо. – mykisscool