Я даже не знаю, как кратко объяснить мою проблему в заголовке. Я хочу создать задачу, которая будет выполнять следующие шаги:
- Взять файл Sass в качестве источника (например, src / scss / main.s css)
- Сортировка css свойства с 'post css -sorting'
- Перезаписать исходный файл по тому же пути (например, src / scss / main.s css)
- Взять отсортированный s css файл и компилировать в css
- Записывать в папку css (например, dist / css)
Я пытаюсь написать эту задачу, но когда я начинаю смотреть s css файл изменяется, задача с бесконечным l oop. Я тоже пробовал с двумя разными задачами (одна для свойств sort css и файла записи, другая для компиляции и записи), она все еще зацикливается. Я не хочу сортировать только свойства css в файле css, я хочу также отсортировать свой файл s css. Это мой пример кода:
// Load plugins
const {gulp, watch, src, dest, series} = require( 'gulp' ),
browserSync = require('browser-sync').create(),
postcss = require( 'gulp-postcss' ),
sortProperties = require( 'postcss-sorting' ),
sassParser = require( 'postcss-scss' ),
sass = require( 'gulp-sass' );
// Load CSS property orders for 'postcss-sorting'
const propertySortOrder = require('./propertySortOrder');
// Style
const style = () => {
return src('src/scss/**/*.scss')
.pipe(
postcss([sortProperties(propertySortOrder)], {
syntax: sassParser,
})
)
.pipe(dest('src/scss'))
.pipe(sass().on('error', sass.logError))
.pipe(dest('src/css'))
.pipe(browserSync.stream());
}
// Start Server
const startServer = (done) => {
browserSync.init({
server: { baseDir: './' },
injectChanges: true
});
done();
}
// Watch File Changes
const watchFileChanges = (done) => {
watch('src/scss/**/*.scss', style);
done();
}
exports.start = series(startServer, watchFileChanges);
Может ли кто-нибудь помочь мне это исправить? Спасибо
PS Извините за все грамматические ошибки, английский sh не мой родной язык.