#css #sass #gulp
#css #sass #глоток
Вопрос:
Я работаю над обновлением нашего SASS. Я использую основную таблицу «sass», которая импортирует все остальное. Когда я изменяю импортированный файл, он не компилирует его. Похоже, что он даже не читает @imported files. Когда я изменяю основной лист, он компилируется просто отлично.
Версия Gulp: 4.0.2 Версия SASS: 4.1.0
Мой файл gulp:
const gulp = require('gulp')
const sass = require('gulp-sass')
const clean = require('gulp-clean-css')
const rename = require('gulp-rename')
const concat = require('gulp-concat')
const uglify = require('gulp-uglify')
const prefixer = require('gulp-autoprefixer')
const sourcemaps = require('gulp-sourcemaps');
var sassSourcesMain = '../scss/source-main.scss';
function style() {
return (
gulp
.src(sassSourcesMain)
.pipe(sourcemaps.init())
.pipe(sass())
.on('error', sass.logError)
.pipe(prefixer())
.pipe(clean())
.pipe(rename('main.min.css'))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('../min'))
);
}
function watch(){
gulp.watch(sassSourcesMain, style)
}
exports.watch = watch
exports.style = style;
exports.default = watch;
Моя основная таблица стилей, из которой все импортируется:
@charset "UTF-8";
@import "base/colors";
@import "base/variables";
@import "base/animations";
@import "base/resets";
@import "base/type";
@import "base/homepagebanners";
И так далее.
Комментарии:
1. Почему вы закомментировали строку, которая просматривает другие файлы? С вашим кодом он только компилирует основной sass, потому что это то, что вы говорите ему делать
var sassSourcesMain = '../scss/source-main.scss';
2. Когда я использую эту строку, я получаю всевозможные ошибки, в которых говорится, что другие файлы не могут найти переменные, которые следует импортировать из строки выше: source-main.scss
3. Затем вам следует выполнить некоторую отладку, чтобы понять, почему эти переменные не могут быть найдены. Это может быть
@import
проблема с порядком.4. Моя проблема в том, что он даже не читает @imported files. Когда я редактировал base / colors, он не перекомпилируется и не замечает изменений.
5. Да, но я только что понял. Мне нужно было просмотреть вложенные папки.
Ответ №1:
Мне нужно было добавить вложенные папки в мою функцию просмотра:
function watch() {
gulp.watch(paths.styles.src, style);
gulp.watch(subscssfiles, style);
}