Gulp. Ошибка RangeError: Maximum call stack size exceeded при добавлении нового кода

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

введите сюда описание изображения

Причем, если закомментировать часть кода любого из подключаемых на странице компонентов, сборка вновь корректно работает.

Для подключения компонентов использую gulp-rigger. Возможно ли устранить проблему? Если нет - посоветуйте пожалуйста альтернативы плагину, без таких сюрпризов.

Конфиг прилагаю.

var gulp = require('gulp'),
    plumber = require('gulp-plumber'),
    sass = require('gulp-sass'),
    prefixer = require('gulp-autoprefixer'),
    cssnano = require('gulp-cssnano'),
    terser = require('gulp-terser'),
    imagemin = require('gulp-imagemin'),
    pngquant = require('imagemin-pngquant'),
    sourcemaps = require('gulp-sourcemaps'),
    browser = require('browser-sync'),
    rigger = require('gulp-rigger'),
    strip = require('gulp-strip-comments'),
    rimraf = require('rimraf'),
    bytediff = require('gulp-bytediff'),
    cssimport = require('gulp-cssimport'),
    svgSprite = require('gulp-svg-sprite'), // create svgSprite
    svgMin = require('gulp-svgmin'), // svg minification
    cheerio = require('gulp-cheerio'), // removal of unnecessary attributes from svg
    replace = require('gulp-replace'), // fix bugs, thats make cheerio plugin
    cache = require('gulp-cache'), // for cache build images and other
    runSequence = require('gulp4-run-sequence'),
    reload = browser.reload;

/* HTML generation */
gulp.task('html', function (done) {
    gulp.src("src/*.html")
        .pipe(rigger())
        .pipe(strip())
        .pipe(gulp.dest("gulp_dist"))
        .pipe(reload({
            stream: true
        }));
    done();
});

/* CSS build [PROD] */
gulp.task('sassProd', async function (done) {
    return gulp.src('./src/sass/main.scss')
        .pipe(plumber())
        .pipe(sass.sync().on('error', sass.logError))
        .pipe(cssimport())
        .pipe(prefixer())
        .pipe(bytediff.start())
        .pipe(cssnano())
        // .pipe(bytediff.stop())
        .pipe(gulp.dest('gulp_dist/style'))
        .pipe(reload({
            stream: true
        }));
    done();
});

/* CSS build [DEV] */
gulp.task('sassDev', async function (done) {
    return gulp.src('./src/sass/main.scss')
        .pipe(plumber())
        // .pipe(sourcemaps.init())
        .pipe(sass.sync().on('error', sass.logError))
        .pipe(cssimport())
        .pipe(prefixer())
        // .pipe(sourcemaps.write('./maps'))
        .pipe(gulp.dest('gulp_dist/style'))
        .pipe(reload({
            stream: true
        }));
    done();
});



/* js build [PROD] */
gulp.task('jsProd', function (done) {
    gulp.src('./src/js/main.js')
        .pipe(rigger())
        .pipe(bytediff.start())
        .pipe(terser())
        // .pipe(bytediff.stop())
        .pipe(gulp.dest('gulp_dist/js'))
        .pipe(reload({stream: true}));
    done();
});

/* js build [DEV] */
gulp.task('jsDev', function (done) {
    gulp.src('./src/js/main.js')
        .pipe(rigger())
        .pipe(sourcemaps.init())
        .pipe(sourcemaps.write('./maps'))
        .pipe(gulp.dest('gulp_dist/js'))
        .pipe(reload({stream: true}));
    done();
});



/* images generation [PROD] */
gulp.task('imageProd', function (done) {
    gulp.src("src/images/**/*.*")
        .pipe(cache(imagemin([
            imagemin.gifsicle({interlaced: true}),
            imagemin.jpegtran({progressive: true}),
            imagemin.optipng({optimizationLevel: 5}),
            imagemin.svgo({
                plugins: [
                    {removeViewBox: false},
                    {cleanupIDs: false}
                ]
            })
        ])))
        .pipe(gulp.dest("gulp_dist/images"))
        .pipe(reload({stream: true}));
    done();
});


/* images generation [DEV] */
gulp.task('imageDev', function (done) {
    gulp.src("src/images/**/*.*")
        .pipe(cache(imagemin()))
        .pipe(gulp.dest("gulp_dist/images"))
        .pipe(reload({stream: true}));
    done();
});


/* svg-sprite generation */
gulp.task('svgSprite', function(done) {
    gulp.src('src/svgsprite/*.svg')

        // minify svg files
        // .pipe(svgMin({
        //     js2svg: {
        //         pretty: true
        //     }
        // }))

        // removal all attributes in svg shapes
        .pipe(cheerio({
            run: function($) {
                $('[class]').removeAttr('class');
                $('[xmlns]').removeAttr('xmlns');
                $('[fill]').removeAttr('fill');
                $('[stroke]').removeAttr('stroke');
                $('[style]').removeAttr('style');
            },
            parseOptions: {
                xmlMode: true
            }
        }))

        // delete unnecessary string made by cheerio plugin with replace
        .pipe(replace('&gt', '>'))

        // make svgSprite
        .pipe(svgSprite({
            mode: {
                symbol: {
                    sprite: "../svgdefs.svg",
                }
            }
        }))
        .pipe(gulp.dest('gulp_dist/images'));
    done();
});

/* fonts generation */
gulp.task('fonts', function(done) {
    gulp.src("src/fonts/**/*.*")
        .pipe(gulp.dest("gulp_dist/fonts"));
    done();
});

/* clean dist folder */
gulp.task('clean', function (cb) {
    rimraf('gulp_dist', cb);
});

/* BrowserSync serve task */
gulp.task('serve', function(done) {
    browser({
        port: 4500,
        open: true,
        ghostMode: false,
        server: {
            baseDir: 'gulp_dist'
        },
        tunnel: 'allso-uz'
    });
    done();
});

/* Watch task [PROD] */
gulp.task('watchProd', function(done) {
    gulp.watch("src/sass/**/*.scss", gulp.series('sassProd'));
    gulp.watch("src/**/*.html", gulp.series('html'));
    gulp.watch("src/js/**/*.js", gulp.series('jsProd'));
    gulp.watch("src/images/**/*.*", gulp.series('imageProd'));
    gulp.watch("src/fonts/**/*.*", gulp.series('fonts'));
    gulp.watch("src/svgsprite/*.svg", gulp.series('svgSprite'));
    done();
});

/* Watch task */
gulp.task('watchDev', function(done) {
    gulp.watch("src/sass/**/*.scss", gulp.series('sassDev'));
    gulp.watch("src/**/*.html", gulp.series('html'));
    gulp.watch("src/js/**/*.js", gulp.series('jsDev'));
    gulp.watch("src/images/**/*.*", gulp.series('imageDev'));
    gulp.watch("src/fonts/**/*.*", gulp.series('fonts'));
    gulp.watch("src/svgsprite/*.svg", gulp.series('svgSprite'));
    done();
});

/* Default task PROD */
gulp.task('prod', function(done) {
    runSequence('clean', gulp.series(gulp.parallel('html', 'sassProd', 'jsProd', 'imageProd', 'svgSprite'), 'watchProd', 'serve'), done);
});

/* Default task DEV */
gulp.task('dev', gulp.series('html', 'sassDev', 'jsDev', 'imageDev', 'svgSprite', 'watchDev', 'serve'));


Ответы (0 шт):