@krll-k

Как должен выглядеть gulpfile.js, если необходим только встроенный web- сервер и сервер livereload?

На хабре наткнулся на статью GulpJS — фантастически быстрый сборщик проектов, но там много того чего мне не нужно. Пробую просто закомментировать ненужные мне строки - в итоге запуск происходит с ошибкой:

C:\projects\cherry_studio>node_modules\.bin\gulp http-server

module.js:340
    throw err;
    ^
Error: Cannot find module 'imagemin-jpegtran'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (C:\projects\cherry_studio\node_modules\gulp-imagemin\
node_modules\imagemin\index.js:197:27)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

Разбираться в зависимостей времени нет, необходим только web- сервер и сервер livereload. Чтобы я мог зайти в консоль, вбить node_modules\.bin\gulp, и в итоге на 9000 порту получил веб- сервер, а зайдя в браузер включил плагин livereload, он бы мне обновлял по сохранению в файлы страничку.

В чем проблема? Скоро дедлайн, и еще раз говорю, времени разбираться нет. нужна помощь скорая, на столько на сколько это возможно.

Кидаю мой gulpfile.js:

var lr = require('tiny-lr'), // Минивебсервер для livereload
    gulp = require('gulp'), // Сообственно Gulp JS
    jade = require('gulp-jade'), // Плагин для Jade
    stylus = require('gulp-stylus'), // Плагин для Stylus
    livereload = require('gulp-livereload'), // Livereload для Gulp
    myth = require('gulp-myth'), // Плагин для Myth - http://www.myth.io/
    csso = require('gulp-csso'), // Минификация CSS
    imagemin = require('gulp-imagemin'), // Минификация изображений
    uglify = require('gulp-uglify'), // Минификация JS
    concat = require('gulp-concat'), // Склейка файлов
    connect = require('connect'), // Webserver
    server = lr();

    // Собираем Stylus
    // gulp.task('stylus', function() {
    //     gulp.src('./assets/stylus/screen.styl')
    //         .pipe(stylus({
    //             use: ['nib']
    //         })) // собираем stylus
    //     .on('error', console.log) // Если есть ошибки, выводим и продолжаем
    //     .pipe(myth()) // добавляем префиксы - http://www.myth.io/
    //     .pipe(gulp.dest('./public/css/')) // записываем css
    //     .pipe(livereload(server)); // даем команду на перезагрузку css
    // });

    // Локальный сервер для разработки
    gulp.task('http-server', function() {
        connect()
            // .use(require('connect-livereload')())
            .use(connect.static('./assets'))
            .use(connect.static('./index.html'))
            .listen('9000');

        console.log('Server listening on http://localhost:9000');
    });

    // Запуск сервера разработки gulp watch
    gulp.task('watch', function() {
        // Предварительная сборка проекта
        // gulp.run('stylus');
        // gulp.run('jade');
        // gulp.run('images');
        // gulp.run('js');

        // Подключаем Livereload
        server.listen(35729, function(err) {
            if (err) return console.log(err);

            //gulp.watch('assets/stylus/**/*.styl', function() {
                //gulp.run('stylus');
            //});
            //gulp.watch('assets/template/**/*.jade', function() {
                //gulp.run('jade');
           // });
            gulp.watch('index.html', function() {
                //gulp.run('images');
                console.log('gulp.watch index.html');
            });
            gulp.watch('assets/css/**/*', function() {
                //gulp.run('images');
                console.log('gulp.watch css');
            });
            gulp.watch('assets/img/**/*', function() {
                //gulp.run('images');
                console.log('gulp.watch img');
            });
            gulp.watch('assets/js/**/*', function() {
                //gulp.run('js');
                console.log('gulp.watch js');
            });
        });
        gulp.run('http-server');
    });
  • Вопрос задан
  • 10425 просмотров
Решения вопроса 3
@krll-k Автор вопроса
Я нашел что искал -> https://github.com/krll-assets/gulp-boilerplate
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Я бы порекомендовал для ваших целей использовать пакет gulp-webserver.
Ответ написан
Комментировать
smanioso
@smanioso
Отмечайте ответы на свои вопросы!
www.browsersync.io - есть мануал по настройке для gulp/grunt
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Singularity
var gulp = require('gulp'),
  connect = require('gulp-connect');

gulp.task('connect', function() {
  connect.server({
    root: 'app',
    livereload: true
  });
});

gulp.task('html', function () {
  gulp.src('./app/*.html')
    .pipe(connect.reload());
});

gulp.task('watch', function () {
  gulp.watch(['./app/*.html'], ['html']);
});

gulp.task('default', ['connect', 'watch']);
Ответ написан
Комментировать
@andreyqin
Пока вы задавали этот вопрос и курили, можно было без проблем найти всё нужное
https://www.npmjs.org/package/livereload

В дополнение видео (8 мин), там как раз идет установка livereload и сервера: www.youtube.com/watch?v=bK3kzGhbJR0
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы