2013-06-12 2 views
7

Мне нужно реализовать пользовательскую задачу Grunt, и я абсолютно потерял о рабочем процессе разработки.Grunt: разработка пользовательских задач, как сделать

  1. Как разработать пользовательскую задачу, и я смогу загрузить ее с использованием npm во время разработки?
  2. Есть ли другой способ распространения пользовательских задач вместо использования npm? Я имею в виду, могу ли я распространять файл JavaScript, определяющий всю пользовательскую задачу Grunt, и импортировать ее непосредственно в Gruntfile.js?

Поскольку все задание будет находиться на очень ранней стадии разработки, возможно, попытка опубликовать его в npm не является хорошей идеей.

Заранее спасибо.

+0

Задачи Grunt - это только узловые модули. Читайте об этом. Вы можете использовать «npm link» для символических модулей в другие. –

ответ

21

Пользовательские задачи для грубой работы - это в основном узловые модули, которые вы можете публиковать в реестре npm. взглянуть на существующие, а также документацию, как построить их здесь:

http://gruntjs.com/api/grunt.task

в основном вы просто сделать что-то вроде этого:

module.exports = function (grunt) { 

    // or use grunt.registerMultiTask 
    grunt.registerTask('your-taskname', 'your task description', function() { 
    }); 
}; 

, чтобы сделать его легким для вас, вы должны использовать grunt-init с grunt-init-gruntplugin, который в основном устанавливает все для вас!

если вы не хотите, чтобы опубликовать свой модуль НПМ, вы можете установить его в в вашем проекте из репозитория мерзавца (например, с помощью GitHub):

$ npm install git+https://github.com/your-user/your-repository --save 

--save вариант сохраняет его автоматически зависимость от проектов package.json.

, если вы просто хотите включить один JS файл в проекте с вашей задачей, положить, что в директории вашего выбора (я использую рубака-задачу здесь), и включить его в своем gruntfile так:

grunt.loadTasks("./grunt-tasks"); 

, который попытается включить каждый js-файл в эту директорию в качестве задач grunt.

+0

(+1) Есть './Grunt-tasks' относительно' Gruntfile.js'? –

+0

да! (... еще 10 символов ... я могу добавить комментарий ;-)) – hereandnow78

+0

hahaha, спасибо за ваши усилия, кажется, правильный путь. Мне понравился факт, что я могу импортировать задачу из git-репо. Отлично!! –

Смежные вопросы