Как игнорировать структуру исходных папок в gulp-sass? - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь сделать так, чтобы файл "main.css" находился прямо в папке css.Однако я получаю этот путь "/css/Content/scss/main.css" и хочу "/css/main.css"

gulp.task('sass', () => {
    const sourceFolder = path.join('.', 'Content', 'scss', 'main.scss');
    const distFolder = path.join('.', 'wwwroot', 'css');
    return gulp.src(sourceFolder)
        .pipe(sass({
            sourceMap: true,
            style: 'compressed'
        }))
        .pipe(cleanCSS({
            compatibility: 'ie8'
        }))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest(distFolder))
        .on('end', () => console.log(`[${new Date().toLocaleTimeString()}] -> sass compilation complete...`));
});

1 Ответ

1 голос
/ 22 марта 2019

Если вы хотите, чтобы main.css оказался в wwwroot/css, попробуйте перейти на следующую строку:

return gulp.src(sourceFolder, { base: path.join('Content', 'scss') })

Извините, но я не могу объяснить, почему ваш исходный код работает в Linux.

Из базы глобусов в gulpjs.docs :

Виниловые экземпляры, генерируемые src (), создаются с базой глобусов, установленной в качестве их базового свойства.При записи в файловую систему с помощью dest () база будет удалена из выходного пути для сохранения структур каталогов.

Таким образом, с base, установленным как path.join('Content', 'scss'), эта часть пути к файлубудет удален, поэтому main.css перейдет непосредственно в ваш distFolder с удаленными родительскими папками.

...