Работа c терминалом NetBeans и использование GRUNT



Решил переписать эту статью, потому что предыдущая ее версия была мягко говоря не очень хорошей! Впринципе сама проблема использования GRUNT именно в совокупности с NetBeans не очень хорошая идея, и я лично от этого отказался, объясню почему.
Для того, чтобы использовать grunt в NetBeans, нам нужен встроенный в NetBeans терминал. NetBeans использует в качестве терминала cygwin. Если у Вас нет этого терминала обязательно скачайте, у него есть подсветка текста и много дополнительных утилит из Linux/Unix. После того, как вы скачали cygwin, вы можете открыть его прямо внутри NetBeans "Окно->IDE и сервис->Терминал".

Так в чем же проблема? Проблема в том, что GRUNT устанавливает пакеты, которые перечислены в разделе devDependences файла package.json после выполнения команды:
 
npm install
 
Немного я скакнул вперед. Для начала проверьте установлен ли у Вас GRUNT, введите команду grunt -version ответ должен быть вроде такого

grunt-cli v0.1.13
grunt v0.4.5
 
Если у Вас не установлен grunt введите вот эту команду для его установки:
<code><span class="pln">npm install </span><span class="pun">-</span><span class="pln">g grunt</span><span class="pun">-</span><span class="pln">cli</span></code>
Дальше, у нас есть grunt и какой-то проект, для простоты, мы хотим только объединить несколько .css файлов в один и несколько .js файлов в один. Для выполнения объединения файлов нам нужен GRUNT модуль grunt-contrib-concat, нужно его установить, для

этого, если не создан, то создаем файл package.json c примерно вот таким содержимым:

{
    "name": "example-project",
    "version": "0.1.0",
    "devDependencies": {
        "grunt": "~0.4.1",
        "grunt-contrib-concat": "*"
    }
}
 
самой важное в этом файле - раздел devDependences! Отлично файл package.json у нас есть, теперь создадим файл, в котором будут храниться наши задания, файл называется Gruntfile.js, и хочу сразу привести пример, как можно в выполнить несколько разных объединений файлов в одном задании.
 
module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        concat: {
            // объединение всех нужных css файлов
            dist1: {
                src: [
                    'one.css',
                    'two.css',
                ],
                dest: 'build/result.css',
            },   
            dist2: {
                src: [
                    'one.js',
                    'two.js',
                ],
                dest: 'build/result.js',
            }
        }
    });
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.registerTask('default', ['concat']);
};
 
После всех этих созданий файлов, у нас ничего не заработает, потому что наш модуль grunt-contrib-concat не установлен, чтобы его установить введите в текущей папке команду:

npm install
 
И вот здесь и кроется проблема! когда grunt начинает загружать нужные модули в папку node_modules то происходит синхронизация с сервером и все эти не нужные Вашему серверу файлы туда и улетают, а это совсем не здорово!

Поэтому самый лучший вариант открыть окно cygwin отдельно, зайти в нужную директорию и установить нужные модули вне NetBeans, после того, как нужные модули будут установлены запускаем GRUNT командой

grunt
 
В результате и лишние файлы не будут никуда выгружаться и впринципе никаких неудобств работа с консолью вне NetBeans не вызывает, также как и , на мой взгляд, никаких преимуществ во встроенной консоли тоже нет!

Кстати, если Вы хотите, чтобы консоль всегда была поверх других окон можете воспользоваться программой AlWaysOnTop

Комментарии

Популярные сообщения из этого блога

Установка утилиты yandex disk для ubuntu