coffeescript и mv (с помощью gulp)

Программист Ruby 2 место Готв Победитель Сбитой кодировки Учитель Оратор
Больше
8 года 6 мес. назад - 8 года 6 мес. назад #100354 от Amphilohiy
Как вы уже наверное знаете я не фанат js, и предпочитаю его с большой дозой сахара. В данном случае синтаксическим сахаром нам будет coffeescript. Почему я взял кофе? Поглядите главную страницу coffeescript , там сами решите надо ли оно вам. Как работает кофеек? Берется код на кофе, транспайлиться(слова то страшные) и в итоге мы получаем js файл, который потом и используем. Теперь же вопрос: как же мы будем, это, как его, транспайлить? Начнем с Ноды.
Node & Gulp
Я предпологаю что вы под виндозой, так что я провел все шаги в 7рке. Для начала скачаем эту самую ноду отсюда . Если не знаете какую кнопку жать - жмите левую. Дальше устанавливаем по установочнику, тут объяснять надеюсь не надо.
Теперь надо открыть консоль с окружением ноды: Графическая подсказка .
Дальше небольшой мой прокол, но разрулим так. В командной строке напишите
Code:
gulp
Если в результате вы увидите что-то вроде
Code:
Local gulp not found in ### Try running: npm install gulp
то все хорошо, ИНАЧЕ попробуйте
Code:
npm install -g gulp
Так вы поставите гульп глобально. Это нужно просто для удобства, иначе вам придется вызывать гульп из пакетов.
Настройка Gulp
Сначала создайте папку в которой вы положете ваш gulp и скрипты по настройке. Он может лежать где вашей душе угодно. А внутри консоли обязательно перейдите в эту папку.
Теперь внутри создаем фаил package.json и пишем в него следующее:
Code:
{ "dependencies": { "gulp-coffee": "^2.3.4", "gulp-plumber": "^1.1.0", "gulp-watch": "^4.3.11", "gulp": "^3.9.1" } }
В консоле (вы же находитесь в той же папке, да?) пишем
Code:
npm install
У вас должна была появиться папочка node_modules (и скорее всего package-lock.json). Теперь создадим gulpfile.js в который на сейчас запишем следующее:
Code:
var gulp = require('gulp'); var plumber = require('gulp-plumber'); var coffee = require('gulp-coffee'); var watch = require('gulp-watch'); gulp.task('coffee', function(){ return watch('./src/**/*.coffee') .pipe(plumber()) .pipe(coffee()) .pipe(gulp.dest('./dest')); }) gulp.task('default', ['coffee']);
сохраняем и пытаемся запустить гулп командой в консоли:
Code:
gulp
Если на экран вывелись надписи на подобии:
Code:
Using gulpfile ### Starting 'coffee'
а консоль от вас чего-то ждет, то это успех. Если что убить галп можно с помощью ctrl-c.
И да, пока убейте ее. Сейчас проверим.
Проверка
создайте папку src а в нем фаил test.coffee. Перезапустите галп, и впишите в фаил следующее:
ВНИМАНИЕ: Спойлер!

Сохраните фаил и ищите папку dest. Там должен быть фаил test.js примерно следующего содержания:
ВНИМАНИЕ: Спойлер!

Код не лучшей красоты, но значит работает!
Подробнее о gulpfile.js
Посмотрим на некоторые команды, чтобы понять как оно работает. Но require я рассматривать не стану.
Code:
gulp.task('coffee', function(){
Так мы создаем таску coffee. тасок может быть много и запускать их можно по разному.Чтобы запустить эту конкретную таску надо выполнить команду
Code:
gulp coffee
Ближе к пайплайну:
Code:
return watch('./src/**/*.coffee')
Знакомтесь - gulp-watch. Мы создаем "триггер изменений", который заставит пайплайн работать при изменении файла. В него достаточно передать путь до отслеживаемых файлов. Данная конструкция смотрит в подпапке src и рекурсивно обвешивает триггеры на файлы с форматом coffee.
Code:
.pipe(plumber()) .pipe(coffee()) .pipe(gulp.dest('./dest'));
Достраиваем пайплайн. Gulp-plumber не дает задаче упасть, иначе пришлось бы перезапускать gulp при любой синтаксической ошибке. Дальше сама перегонка в кофе, и наконец выплевываем сам фаил в подпапку dest.
И последний момент:
Code:
gulp.task('default', ['coffee']);
Мы создаем задачу из нескольких задач и называем ее default. По умолчанию gulp ищет задачу с именем 'default', но вы можете запустить любюу переда имя задачи галпу. Ну и соответственно вы можете запустить задачу, которая исполняет несколько задач.
Гулп пользуется готовыми пакетами из которых мы и строим пайплайн. Их еще много разных, ознакомиться можно на буржуйском сайте пакетного менеджера npm .
И об этом. Устанавливать пакеты можно примерно следующей командой:
Code:
npm install --save <ваш пакет>
Таким образом информация о пакете сохранится в package.json. Если собираетесь сохранять ваш гульпфаил в гите, но не тащите за собой node_modules. простая команда npm install подтянет все зависимости из package.json и package-lock.json. Но подробно npm рассматривать я не буду.
На этом все. Надеюсь я дал вам достаточно информации по gulp и его волшебным свойствам. Если вы все сделали правильно, то уже можете писать на кофе и пользоваться выхлопом в виде js.

Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 8 года 6 мес. назад пользователем Amphilohiy.
Спасибо сказали: Dmy, AnnTenna, DK, yuryol, Rude

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.090 секунд
Работает на Kunena форум