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

时间:2019-03-21 10:27:49

标签: sass gulp-sass

我正在尝试使“ 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 个答案:

答案 0 :(得分:1)

假设您希望main.csswwwroot/css结尾,请尝试更改为以下行:

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

对不起,但是我无法解释为什么原始代码可以在Linux上运行。

来自glob base in gulpjs.docs

  

由src()生成的Vinyl实例是使用glob base构建的   设置为其基本属性。当用   dest(),将从输出路径中删除基数以保留   目录结构。

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