Comments 13
Моё знакомство с Grunt было через проект Yeoman. Весьма удобная вещь.
Получаешь фреймворк для разработки, в котором установлены основные опции для Grunt и есть интерфейс для создания как скелета проекта так и добавление отдельных файлов.
Нужен контролллер для приложения AngularJS?
и получаем скелет файла контроллера, плюс обновлённый файл index.html с подключённым новосозданным файлом.
Получаешь фреймворк для разработки, в котором установлены основные опции для Grunt и есть интерфейс для создания как скелета проекта так и добавление отдельных файлов.
Нужен контролллер для приложения AngularJS?
$ yo angular:controller --coffee
и получаем скелет файла контроллера, плюс обновлённый файл index.html с подключённым новосозданным файлом.
А не подскажите как теперь нужно вызывать например 'concat' в своем плагине. Раньше делал так:
Как теперь правильно использовать новый grunt-contrib-concat?
var combined = grunt.helper('concat', src, { separator: '' });
Как теперь правильно использовать новый grunt-contrib-concat?
Свои плагины я не писал, поэтому могу этим ответом попасть пальцем в небо :-)
Здесь пишут, что система хэлперов была удалена в пользу нодовского require. Там же отсылают к этому примеру.
Здесь пишут, что система хэлперов была удалена в пользу нодовского require. Там же отсылают к этому примеру.
В своём плагине я сам делал. В вышеназванном legacyhelpers concat — всего несколько строчек.
Спасибо, а можно ли вообще использовать другие сторонние плагины скажем отсюда в своих собственных?
Некоторые можно. Где какая-то полезная функциональность вынесена в отдельный модуль. Вот так, например. Используется примерно так. Сам пока не пробовал.
> Сам grunt теперь ставится локально в папку проекта: npm install grunt
У меня в работе с десяток проектов, у каждого есть ветки… и такой подход мне кажется безумием. Я читал на эту тему эссе разработчика, там есть рациональное зерно, но мне так жить не удобно. Решение проблемы очень простое. Ставим всё глобально (и grunt 0.4, и плагины) и в node_modules/grunt/lib/grunt/task.js подправляем
Теперь будет работать всё везде, как было в 0.3.
Подобный патч автору присылали много раз, но он принципиально не хочет так делать.
У меня в работе с десяток проектов, у каждого есть ветки… и такой подход мне кажется безумием. Я читал на эту тему эссе разработчика, там есть рациональное зерно, но мне так жить не удобно. Решение проблемы очень простое. Ставим всё глобально (и grunt 0.4, и плагины) и в node_modules/grunt/lib/grunt/task.js подправляем
task.loadNpmTasks
, заменивvar root = path.resolve('node_modules');
наvar root = path.resolve('путь, куда встало всё при глобальной установке', 'node_modules');
Теперь будет работать всё везде, как было в 0.3.
Подобный патч автору присылали много раз, но он принципиально не хочет так делать.
Хорошая статья. Только надо было упомянуть о package.json. Взял для себя за правило ложить его в папку репозитория для облегчения развертывания фронтенда у других разработчиков. Фактически, им нужно выполнить
в папке проекта — npm сам выгребет grunt и необходимые для него зависимости, которые указаны в package.json. В вашем случае содержание package.json будет таким:
npm install -g grunt-cli
npm install
в папке проекта — npm сам выгребет grunt и необходимые для него зависимости, которые указаны в package.json. В вашем случае содержание package.json будет таким:
{
"version": "0.1.0",
"devDependencies": {
"grunt": "~0.4.0",
"grunt-contrib-concat": "",
"grunt-contrib-jshint": "",
"grunt-contrib-uglify": "",
"grunt-contrib-qunit": "",
"grunt-contrib-watch": "",
"grunt-contrib-stylus": ""
}
}
Статья больше о миграции, нежели о гранте и установке модулей. Упоминание в статье есть здесь:
По сути — да, все правильно делаете :)
При установке рекомендуется использовать параметр --save-dev, чтобы автоматически обновлялись зависимости devDependencies в package.json.
По сути — да, все правильно делаете :)
Только не забывайте версии плагинов тоже указывать (npm i grunt-contrib-concat -D), иначе при очередном крупном обновлении Гранта всё сломается.
Sign up to leave a comment.
Миграция на Grunt v0.4