Скажімо, ми хочемо, щоб Grunt працював у процесі розробки, а потім, коли ми перейдемо до робочого сайту, нам потрібні інші завдання для виконання. Ми можемо визначити кілька завдань усередині кожної конфігурації. Наприклад:
<code data-language="javascript">//Gruntfile.js grunt.initConfig({ //отримати конфігурацію з package.json //так ми можемо використовувати штуки на зразок name і version (pkg .name) pkg: grunt.file.readJSON('package.json'), ... //параметри uglify для мінімізації JS-файлів uglify: { options: { banner: '/\n <%=pkg.name % > <%=grunt.template.today("yyyy-mm-dd") %>\n/\n' }, dev: { files: { 'dist/js/magic.min.js': ['src/js/magic.js', 'src/js/magic2.js'] } }, production: { files: { 'dist/js/magic.min.js': 'src/**/*. js' } } } });
Тепер ми можемо викликати їх по-різному, використовуючи двокрапку. Давайте створимо завдання для розробки та публікації.=========//За замовчуванням проходить через всі конфігурації (dev і production) grunt.registerTask('default', ['jshint', 'uglify', 'cssmin', 'less']); //це завдання буде виконуватися тільки для конфігурації dev grunt.registerTask('dev', ['jshint:dev', 'uglify:dev', 'cssmin:dev', 'less:dev']); //тільки для конфігурації production grunt.registerTask('production', ['jshint:production', 'uglify:production', 'cssmin:production', 'less:production']); });
Тепер ми можемо виконати завдання для розробки запустивши:
<code>$ grunt dev
Або завдання для робочого сайту запустивши:
<code data-language="javascript">$ grunt production
Як бачите, ми можемо створити кілька конфігурацій для наших завдань і по-різному викликати їх.
І остання річ, яку ми зараз вивчимо. Слідкуватимемо за файлами і запускатимемо Grunt кожного разу при їх зміні!