@wakenby

Почему ошибка из cleanCSS в gulp?

Вот конфигурация gulp:

const { src, dest } = require('gulp')

const plumber = require('gulp-plumber')

const sass = require('gulp-sass')
const autoprefixer = require('gulp-autoprefixer')
const sassGlob = require('gulp-sass-glob')
const cleanCSS = require('gulp-clean-css')

function styles () {
    return src('#src/static/styles/styles.scss')
        .pipe(plumber())
        .pipe(sassGlob())
        .pipe(sass({outputStyle: 'expanded'}))
        .pipe(cleanCSS())
        .pipe(autoprefixer())
        .pipe(dest('dist/css'))
}

exports.styles = styles


И все работает если убрать cleanCSS(), но с ним возникает ошибка:

Ignoring local @import of "#src/static/styles/styles.css" as resource is missing.


Не понимаю что не так с cleanCSS.

Вот код styles.scss:

a {
  display: flex;
  align-items: center;
}

.shorthand {
  font-style: italic;
  font-weight: bold;
  font-size: .8em;
  line-height: 1.2;
  font-family: Arial, sans-serif;
}
  • Вопрос задан
  • 386 просмотров
Пригласить эксперта
Ответы на вопрос 3
@dMn91
Столкнулся с такой же проблемой при настройке gulp по этому видеоуроку. Это баг из-за символа "#". В плагине что-то ломается при его использовании. Переименуй папку #src в src, также не забудь внести такое же изменение в переменную sourceFolder. ИМХО, все эти "свои наработки" сомнительны. Часа два сидел искал в чем проблема.
Ответ написан
Комментировать
mitrofanzxc
@mitrofanzxc
Front-end Developer
Могу ошибаться, но вам необходимо продублировать строку .pipe(dest('dist/css')) перед строкой .pipe(cleanCSS()). Также обратите внимание на свою последовательность: .pipe(autoprefixer()) должен явно выше стоять перед .pipe(cleanCSS()). Вы же сначала делаете манипуляции над кодом, а потом уже итог минифицируете. Должно получиться:

.pipe(plumber())
.pipe(sassGlob())
.pipe(sass({outputStyle: 'expanded'}))
.pipe(autoprefixer())
.pipe(dest('dist/css'))
.pipe(cleanCSS())
.pipe(dest('dist/css'))

Кстати, про # в названии папок - неправда. Все с ней работает.
Ответ написан
Комментировать
sharnirio
@sharnirio
Front-end developer
Предположу папка для файлов все таки называется 'src', а не '#src'
так что поменяйте путь к файлу return src('src/static/styles/styles.scss')
Ответ написан
Ваш ответ на вопрос

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

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