Почему Gulp не компилирует slim?

Есть проект сделанный на scss, slim и все это на middleman (генератор статических сайтов на руби) - т.е. руби инструменты.
Т.к. Руби я не знаю, то решил вместо Мидлмена использовать Галп.
Настроил таски
'use strict';

var gulp = require('gulp'),
    watch = require('gulp-watch'),
    prefixer = require('gulp-autoprefixer'),
    uglify = require('gulp-uglify'),
    sass = require('gulp-sass'),
    slim = require('gulp-slim'),
    cssmin = require('gulp-minify-css'),
    imagemin = require('gulp-imagemin'),
    pngquant = require('imagemin-pngquant'),
    rimraf = require('rimraf'),
    browserSync = require("browser-sync"),
    reload = browserSync.reload;

var path = {
    build: {
        html: 'build/views/',
        js: 'build/assets/javascripts/',
        css: 'build/assets/stylesheets/',
        img: 'build/assets/images/',
        fonts: 'build/assets/fonts/'
    },
    src: {
        html: 'app/views/**/*.slim',
        js: 'app/assets/javascripts/application.js',
        style: 'app/assets/stylesheets/**/*.scss',
        img: 'app/assets/images/**/*.*',
        fonts: 'app/assets/fonts/*.*'
    },
    watch: {
        html: 'app/views/**/*.slim',
        js: 'app/assets/javascripts/**/*.js',
        style: 'app/assets/stylesheets/**/*.scss',
        img: 'app/assets/images/**/*.*',
        fonts: 'app/assets/fonts/*.*'
    },
    clean: 'build'
};

var config = {
    server: {
        baseDir: "./build"
    },
    tunnel: true,
    host: 'localhost',
    port: 9000,
    logPrefix: "Frontend_Devil"
};

gulp.task('webserver', function () {
    browserSync(config);
});

gulp.task('clean', function (cb) {
    rimraf(path.clean, cb);
});

gulp.task('html:build', function () {
    gulp.src(path.src.html) 
        .pipe(slim({
            pretty: true
        }))
        .pipe(gulp.dest(path.build.html))
        .pipe(reload({stream: true}));
});

gulp.task('js:build', function () {
    gulp.src(path.src.js) 
        
        .pipe(uglify()) 
        .pipe(gulp.dest(path.build.js))
        .pipe(reload({stream: true}));
});

gulp.task('style:build', function () {
    gulp.src(path.src.style) 

        .pipe(sass({
            includePaths: ['app/assets/stylesheets/'],
            outputStyle: 'compressed',
            errLogToConsole: true
        }))
        .pipe(prefixer())
        .pipe(cssmin())
        .pipe(gulp.dest(path.build.css))
        .pipe(reload({stream: true}));
});

gulp.task('image:build', function () {
    gulp.src(path.src.img) 
        .pipe(imagemin({
            progressive: true,
            svgoPlugins: [{removeViewBox: false}],
            use: [pngquant()],
            interlaced: true
        }))
        .pipe(gulp.dest(path.build.img))
        .pipe(reload({stream: true}));
});

gulp.task('fonts:build', function() {
    gulp.src(path.src.fonts)
        .pipe(gulp.dest(path.build.fonts))
});

gulp.task('build', [
    'html:build',
    'js:build',
    'style:build',
    'fonts:build',
    'image:build'
]);


gulp.task('watch', function(){
    watch([path.watch.html], function(event, cb) {
        gulp.start('html:build');
    });
    watch([path.watch.style], function(event, cb) {
        gulp.start('style:build');
    });
    watch([path.watch.js], function(event, cb) {
        gulp.start('js:build');
    });
    watch([path.watch.img], function(event, cb) {
        gulp.start('image:build');
    });
    watch([path.watch.fonts], function(event, cb) {
        gulp.start('fonts:build');
    });
});


gulp.task('default', ['build', 'webserver', 'watch']);


Но на слиме выдает ошибкуf740078dfc7148bf80d79e411741a9af.png

Если удалить ту строчку, то затык на следующей:
javascript_include_tag
Если и ее удалить, то этот файл компилирует( правда кириллица превращается к кракозябру), но находит ошибку в другом файле.

Может есть предположения - в чем причина?
  • Вопрос задан
  • 1206 просмотров
Решения вопроса 1
@j_wayne
stylesheet_link_tag это хелпер метод middleman. Gulp про него, естественно, не в курсе.
А вы случайно не пытаетесь решить задачу квадратно-гнездовым методом?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Vsnegovik
@Vsnegovik
frontend-разработчик
У меня была похожая проблема, slim не компилировался, текст ошибки к сожалению не сохранился, но ошибка была тоже в events.js только на другой строчке и начиналась так же throw err: //Unhandled 'error' event, а текст ошибки был из артефактов. Дело было в том, что ruby не записал путь в переменные среды windows. Хотя в инсталяторе была отмечена соответствующая галочка.
Решение
Добавил вручную, перезагрузил систему, и заработало. 64da2e25413f4217abeba8966c6ec729.png
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы