Gulp не компилирует код scss в css

Я пытаюсь использовать gulp для преобразования scss в css. Я вношу изменения в scss, и в css ничего не меняется. У кого-нибудь есть идеи по этому поводу? Спасибо

Моя файловая структура такова:

index.html    
app/scss/styles.scss   
app/css/styles.css

файловая структура изображения

И мой файл gulp содержит это:

     var gulp = require('gulp');
      var sass = require('gulp-sass');

  gulp.task('sass', function(){
   return gulp.src('app/scss/styles.scss')
     .pipe(sass()) // Converts Sass to CSS with gulp-sass
     .pipe(gulp.dest('app/css'))
});

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

Есть ли в папке css файл styles.css?

Mark 23.10.2018 22:08

да, у меня есть styles.css в папке CSS

kat 23.10.2018 22:10

Ах, после редактирования - есть ли у вас средство отслеживания файлов, чтобы следить за изменениями в файлах .scss?

Mark 23.10.2018 22:42

Я отредактировал свой пост, мне надоело использовать этот gulp.task ("watch", function () {gulp.watch ("scss / ** / *. Scss", ['scss']);});

kat 23.10.2018 22:55

У вас есть другие файлы .scss, кроме styles.scss, которые вы хотите скомпилировать? Я бы рекомендовал внести изменения в gulp.src в вашей задаче gulp с именем sass - измените его с app/scss/styles.scss на app/scss/**/*.scss. **/* - это способ указать ему проверять все подкаталоги на наличие файлов, которые заканчиваются на .scss "

miir 23.10.2018 23:35

Для задачи слежения, возможно, потребуется обновить путь с "scss/**/*.scss" на "app/scss/**/*.scss" - в начале может отсутствовать каталог app, поэтому он «наблюдает» за изменениями файлов не в том месте.

miir 23.10.2018 23:35

@miir .. Я заменил его на gulp.task "смотреть", function () {gulp.watch ("app / scss / ** / *. scss", ['scss']); }); но без изменений, я использую только один файл scss, чтобы проверить это

kat 23.10.2018 23:55

@kat Какие команды gulp вы запускаете в терминале? Да, другое дело, с gulp.watch("app/scss/**/*.scss", ['scss']); - второй параметр ['scss'] надо переименовать в ['sass']. Элементы в этом массиве (в квадратных скобках []) должны быть именами других задач gulp, которые должны выполняться при изменении отслеживаемых файлов. Другие ваши задачи для компиляции scss называются 'sass', так что это имя также можно использовать здесь.

miir 24.10.2018 00:11

@miir Я внес эти изменения сейчас, я запускаю "gulp sass" в терминале

kat 24.10.2018 11:37

@miir Я внес эти изменения сейчас, я запускаю "gulp sass" в терминале. Я обновил исходный код выше для этих изменений, но пока ничего не работает. Я новичок в этом.

kat 24.10.2018 11:42

Теперь у меня все работает, спасибо !!, хотя каждый раз, когда я хочу скомпилировать свой css, мне приходится каждый раз запускать "gulp sass", есть ли более быстрый способ скомпилировать scss, просто сохранив scss?

kat 24.10.2018 11:50

Вам нужно перейти на gulp.watch ("app / scss / ** / *. Scss", ['sass']); в задаче "смотреть". [Обратите внимание на добавленное приложение /]

Mark 24.10.2018 15:45

@kat Да, вместо того, чтобы каждый раз запускать gulp sass, вы можете запускать gulp watch. Обратите внимание, что в gulpfile.js у вас есть gulp.task("sass", ... ); и gulp.task("watch"). Это задачи, которые вы там определили, поэтому обе они доступны для запуска из командной строки с помощью gulp sass или gulp watch соответственно. Задача наблюдения - это та задача, которую вы можете запустить один раз, и она будет продолжать работать для обнаружения изменений файлов, и каждый раз, когда что-то меняется, она автоматически запускает gulp sass для компиляции.

miir 24.10.2018 19:14

@miir .. Я внес эти изменения в исходный код выше, но задача gulp выполняется в терминале, но она не вносит изменений в scss и css, если я не использую gulp sass, есть идеи, почему это может быть? gulp.task ("часы", функция () {gulp.watch ("приложение / scss / ** / *. scss", ['sass']);});

kat 25.10.2018 12:16

@kat Я не уверен, мне это кажется правильным ... не могли бы вы объяснить, какие шаги вы делаете и каковы ваши ожидания от результата?

miir 25.10.2018 19:23
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
15
93
1

Ответы 1

Измените путь к файлам и dest на следующий

gulp.task("sass", function () {
  return gulp
    .src("./app/scss/styles.scss")
    .pipe(sass())
    .pipe(gulp.dest("./app/css"))

});

Другие вопросы по теме