Martovitskiy
@Martovitskiy

Как победить ошибку Error in parsing SVG: Unquoted attribute value?

gulpfile.js

const
  gulp          = require('gulp'),
  gulpsass      = require('gulp-sass'),
  browsersync   = require("browser-sync"),
  babel         = require('gulp-babel'),
  phpConnect    = require('gulp-connect-php'),
  concat        = require('gulp-concat'),
  concatCSS     = require('gulp-concat-css'),
  uglify        = require('gulp-uglifyjs'),
  cssnano       = require('gulp-cssnano'),
  rename        = require('gulp-rename'),
  del           = require('del'),
  imagemin      = require('gulp-imagemin'),
  pngquant      = require('imagemin-pngquant'),
  cache         = require('gulp-cache'),
  autoprefixer  = require('gulp-autoprefixer'),
  htmlmin       = require('gulp-htmlmin'),

function gulpSass() {
  return gulp
    .src('assets/sass/**/*.sass')
    .pipe(gulpsass({ outputStyle: "expanded" }))
    .pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], {cascade: true}))
    .pipe(gulp.dest('assets/css'))
    .pipe(browsersync.stream());
}

function libsJs() {
  return gulp.src([
    'assets/libs/jquery-3.3.1.min.js',
    'assets/libs/bootstrap-4.3.1-dist/js/bootstrap.js',
    'assets/libs/validator.min.js'
  ])
    .pipe(concat('libs.min.js'))
    .pipe(uglify({
      toplevel: true
    }))
    .pipe(gulp.dest('assets/js'))
}

function scripts(){
  return gulp
    .src(['assets/js/main.js', 'assets/js/index.js'])
    .pipe(babel({
      presets: ['@babel/env']
    }))
    .pipe(gulp.dest('assets/scripts'))
}

function libsCss() {
  return gulp.src([
    'assets/libs/bootstrap-4.3.1-dist/css/bootstrap.css',
    'assets/css/animate.css'
  ])
    .pipe(concatCSS('libs.css'))
    .pipe(gulp.dest('assets/css'))
    .pipe(cssnano())
    .pipe(rename({suffix: '.min'}))
    .pipe(gulp.dest('assets/css'))
}

function browserSync(done) {
  phpConnect.server({
    port: 8000,
    notify: false,
    keepalive: true,
    base: "./"
  }, function (){
    browsersync({
      proxy: '127.0.0.1:8000/'
    });
  });
  done();
}

function clean() {
  return del(["dist"]);
}
function cleanES() {
  return del(["assets/script"]);
}
function clear() {
  return cache.clearAll();
}

function images() {
  return gulp
    .src("assets/images/**/*")
    .pipe((cache(
      imagemin([
        imagemin.gifsicle({ interlaced: true }),
        imagemin.jpegtran({ progressive: true }),
        imagemin.optipng({ optimizationLevel: 5 }),
        imagemin.svgo({
          plugins: [
            {
              removeViewBox: false,
              collapseGroups: true,
              use: [pngquant()]
            }
          ]
        })
      ])))

    )
    .pipe(gulp.dest('dist/assets/images'));
}

function watchFiles(done) {
  gulp.watch("./**/*.php", reload);
  gulp.watch('assets/sass/**/*.sass', gulp.parallel(gulpSass));
  gulp.watch('assets/js/**/*.js', reload);
  gulp.watch('*.html', reload);
  done();
}

function buildFiles(done) {
  gulp.src([
    'assets/css/main.css',
    'assets/css/libs.min.css'
  ])
    .pipe(cssnano())
    .pipe(gulp.dest('dist/assets/css'));

  gulp.src(
    'assets/js/libs.min.js')
    .pipe(gulp.dest('dist/assets/js'));

  gulp.src(['assets/scripts/main.js'])
    .pipe(uglify())
    .pipe(gulp.dest('dist/assets/scripts'));

  gulp.src(['assets/scripts/config-contact.js'])
    .pipe(uglify({
      toplevel: true
    }))
    .pipe(gulp.dest('dist/assets/scripts'));

  gulp.src('static**!/!*')
    .pipe(gulp.dest('dist'));

  gulp.src('php**!/!*')
    .pipe(gulp.dest('dist'));

  gulp.src('*.html')
    .pipe(htmlmin({collapseWhitespace: true}))
    .pipe(gulp.dest('dist'));

  gulp.src('*.txt')
    .pipe(gulp.dest('dist'));

  gulp.src('*.xml')
    .pipe(gulp.dest('dist'));

  gulp.src('.htaccess')
    .pipe(gulp.dest('dist'));
  done();
}
const watch = gulp.series(watchFiles, gulp.parallel(cleanES, browserSync, scripts, libsJs, libsCss));
const build = gulp.series(clean, gulp.parallel(buildFiles, images, libsJs));

exports.clean = clean;
exports.clean = cleanES;
exports.clear = clear;
exports.watch = watch;
exports.build = build;
exports.default = watch;

function reload(done) {
  browsersync.reload();
  done();
}


Вылетает ошибка Error in plugin "gulp-cssnano"
Message:
postcss-svgo: Error in parsing SVG: Unquoted attribute value

И еще проблема, у меня sass не стримит а релоадит
  • Вопрос задан
  • 399 просмотров
Решения вопроса 1
Martovitskiy
@Martovitskiy Автор вопроса
Установил CSSO вместо cssnano
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
CTRL+ Москва
от 250 000 до 320 000 ₽
CTRL+ Москва
от 200 000 до 300 000 ₽
CTRL+ Белград
от 250 000 до 320 000 ₽
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект