Gulp4编译SCS会创建空css文件,但sass编译正确
我已经安装了gulp@4.0.0,然后大口吞下-sass@4.0.2,以及Windows中最新的gulp cli 当我将src()的路径设置为查找Gulp4编译SCS会创建空css文件,但sass编译正确,css,sass,gulp,gulp-sass,node-sass,Css,Sass,Gulp,Gulp Sass,Node Sass,我已经安装了gulp@4.0.0,然后大口吞下-sass@4.0.2,以及Windows中最新的gulp cli 当我将src()的路径设置为查找'assets/css/src/***.sass'文件以创建流时,它会将sass正确编译为css 但是,当我尝试使用'assets/css/src/***.scss'文件执行此操作时,它会创建相应的.css文件,但该文件是空的 当我在.scss文件中故意插入错误代码时,它会抛出一个错误,因此gulp sass实际上会通过.scss文件,但不会将缓冲区输
'assets/css/src/***.sass'
文件以创建流时,它会将sass正确编译为css
但是,当我尝试使用'assets/css/src/***.scss'
文件执行此操作时,它会创建相应的.css文件,但该文件是空的
当我在.scss
文件中故意插入错误代码时,它会抛出一个错误,因此gulp sass实际上会通过.scss文件,但不会将缓冲区输出到css代码中
即使我手动运行node sass来编译脚本,它也会产生相同的问题,因此它可能与作为编译器的node sass有更多的关系
注:
.scss和.sass的语法都正确,并且使用了正确的扩展名
这是我的gulpfile.js:
var gulp = require("gulp");
var sass = require("gulp-sass");
let paths = {
css : {
src : 'assets/css/src/**/*.scss',
dest : 'assets/css/dist'
}
};
function style() {
return (
gulp
.src(paths.css.src)
.pipe(sass())
.on("error", sass.logError)
.pipe(gulp.dest(paths.css.dest))
);
}
// $ gulp style
exports.style = style;
可能是当您将文件扩展名更改为
.scss
时,内容仍然使用旧式缩进语法
.SASS缩进语法
body
background-color: red;
h1
font-size: 2.5rem;
.SCSS语法
body {
background-color: red;
h1 {
font-size: 2.5rem;
}
}
确保每个扩展都使用了正确的语法
您可以阅读更多关于和解决之间的差异的内容:结果表明,只有具有某些属性的样式块被注释,从而导致.scss文件返回空输出,而sass不会编译空块 您可以尝试删除return语句中的括号。@谢谢,但这没有任何影响。正如我所提到的,当我为.sass文件而不是.scss文件流设置路径时,它会正确编译,但是.scss返回空缓冲区尝试将'dist'目录移动到'assets'之外……使'src'和'dest'位于不同的位置。我通常在根目录上创建“source”和“public”(dist)目录。@Shakespear,我以前尝试过,它生成相同的issueThanks,但我使用了正确的语法和正确的扩展名。在进一步测试时,我尝试手动运行节点sass编译,但问题似乎缩小到节点sass。换句话说,《关于答案》中的建议不是问题。无论如何,谢谢你的努力。