Grunt-плагин для сборки definer-модулей
Для работы этого плагина требуется Grunt ~0.4.1
.
Если вы не использовали Grunt раньше, то можете ознакомиться с вступительной инструкцией, в которой объясняется, как добавить Gruntfile в проект.
Установить этот плагин можно следующей командой:
npm install grunt-definer
После установки, можно будет подключить плагин в вашем Gruntfile:
grunt.loadNpmTasks('grunt-definer');
Для запуска сборки definer-модулей, достаточно выполнить команду: grunt definer
.
Сборка осуществляется с помощью Definer.
Тип: String
Обязательный
Опция указывает путь до файла, в который будет сохранён результат.
Тип: String
String[]
По умолчанию: .
Опция указывает откуда следует начать искать модули в файловой системе. Поиск модулей выполняется рекурсивно по всем вложенным директориям.
По умолчанию definer ищет модули в текущей директории.
Тип: String
По умолчанию: js
Опция задаёт постфикс файлов, в которых будет производиться поиск модулей.
Тип: String
Boolean
По умолчанию: false
Опция позволяет указать имя модуля, для которого необходимо выполнить сборку. В результирующий файл попадут только те модули, которые необходимы для указанного модуля.
По умолчанию собираются все найденные модули.
Тип: String
String[]
Boolean
По умолчанию: false
Опция позволяет перечислить имена модулей, для которых предполагается запуск istanbul. Для всех остальных модулей будет добавлен комментарий, исключающий их из оценки покрытия тестами.
По умолчанию комментарии не добавляются, поскольку запуск оценки покрытия тестами не предполагается.
Тип: Array
По умолчанию: []
Опция настраивает вывод информации о сборке.
Информация делится на типы:
log
— информация о процессе сборки (синим цветом)info
— сообщение о результате сборки (зелёным)warn
— предупреждения (жёлтым)error
— ошибки (красным)
По умолчанию выводятся все типы информации.
Тип: Object
По умолчанию: {}
Опция указывает пути до файлов, хранящих переменные глобального контекста.
Тип: Object
По умолчанию: {}
Опция формирует JSDoc, содержащий информацию о собранном файле.
Будут получены все модули из директории modules/
и сохранены в файл all.js
.
definer: {
all: {
target: 'all.js',
directory: 'modules/'
}
}
Кроме модулей, в файл all.js
будет сохранён jQuery с его плагинами и Underscore.
definer: {
all: {
target: 'all.js',
directory: 'modules/',
clean: {
$: [
'jquery.js',
'jquery.ui.js',
'jquery.mobile.js'
],
_: 'path/to/underscore.js'
}
}
}
Будут получены модули из файлов *.module.js
, которые лежат в директориях modules/
и modules2/
. Из них будут отобраны модули, необходимые для работы модуля d
и сохранены в файл d.js
.
definer: {
all: {
target: 'd.js',
directory: [
'modules/',
'modules2/'
],
module: 'd',
postfix: 'module.js'
}
}
В собранный файл будет добавлен JSDoc.
Тегу version
установится значение одноимённого поля из файла package.json
.
Тег date
будет указывать на текущую дату.
definer: {
all: {
target: 'all.js',
directory: 'modules/',
jsdoc: {
"file": "File description",
"copyright": "2014 Artem Kurbatov, tenorok.ru",
"license": "MIT license",
"version": "package.json",
"date": true
}
}
}
Следующий пример будет выводить только предупреждения и ошибки.
definer: {
all: {
target: 'all.js',
directory: 'modules/',
verbose: ['warn', 'error']
}
}