如何忽略gulp-sass中的源文件夹结构?

问题描述 投票:0回答:1

我想让“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...`));
});
sass gulp-sass
1个回答
1
投票

假设您希望main.css最终在wwwroot/css尝试更改为此行:

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

抱歉,但我无法解释为什么您的原始代码适用于Linux。

来自glob base in gulpjs.docs

由src()生成的Vinyl实例是以glob base set为基本属性构造的。使用dest()写入文件系统时,将从输出路径中删除基数以保留目录结构。

因此,将base设置为path.join('Content', 'scss')将删除文件路径的一部分,因此main.css将直接进入您的distFolder并删除父文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.