четверг, 23 ноября 2017 г.

Работа 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

Комментариев нет:

Отправить комментарий

Mysql настройка режима

Для настройки режима mysql не обязательно править конфиги можно выполнить команду mysql > set global sql_mode = 'STRICT_TRANS_TAB...