Есть несколько способов сделать это sh. Вот три:
gulp.task('sass-dev', function (done) {
return gulp.src(['src/scss/**/*.page.scss'], {base: 'src/scss/styles1/front_page' })
.pipe(sass({ outputStyle: 'expanded' }).on('error', sass.logError))
.pipe(gulp.dest('./frontend/css/temp/styles1')) // use with base option, works
});
Использование опции base
- это в основном устанавливает то, что вам не нужно в конечном пункте назначения, поэтому gulp.dest
добавляет styles1
обратно. Таким образом, вы исключаете "src/scss/styles1/front_page
и отправляете по адресу плагин. Это позволяет вам удалять или выравнивать каталоги по вашему выбору. В вашем случае:
const flatten = require("gulp-flatten");
gulp.task('sass-dev', function (done) {
return gulp.src(['src/scss/**/*.page.scss'])
.pipe(sass({ outputStyle: 'expanded' }).on('error', sass.logError)
.pipe(flatten({ subPath: [0, -1] }))
.pipe(gulp.dest('./frontend/css/temp'))
});
flatten({ subPath[0, -1] })
удалит последнюю папку, то есть 'front_page'.
const rename = require("gulp-rename");
const path = require("path");
gulp.task('sass-dev', function (done) {
return gulp.src(['src/scss/**/*.page.scss'])
.pipe(sass({ outputStyle: 'expanded' }).on('error', sass.logError))
.pipe(rename(function (file) {
let temp = path.dirname(file.dirname);
file.dirname = temp;
}))
.pipe(gulp.dest('./frontend/css/temp'))
});