Libsass 2.0 为 libsass 用户带来了缩进语法,但到目前为止我还无法让它与node-sass
and gulp-sass
。我有所有最新版本:
节点 sass: 0.93
gulp-sass: 0.7.2
gulp: 3.8.2
这个设置编译.scss
文件甚至.sass
使用括号语法的文件,但不会编译缩进语法。有人成功用node-sass和gulp编译了缩进语法吗?
My gulpfile.js
var gulp = require('gulp');
var sass = require('gulp-sass');
gulp.task('sass', function() {
return gulp.src('./sites/all/themes/nsfvb/sass/screen.sass')
.pipe(sass({
includePaths: require('node-neat').includePaths,
errLogToConsole: true
}
))
.pipe(gulp.dest('./sites/all/themes/nsfvb/css'));
});
gulp.task('watch', function() {
gulp.watch('./sites/all/themes/nsfvb/sass/*.sass', ['sass']);
});
gulp.task('default', ['sass', 'watch']);
运行默认任务时出错
error: invalid top-level expression
更新的答案:
如果要使用缩进语法 (.sass) 作为顶级文件,请使用 sass({indented Syntax: true})。
sass({indentedSyntax: true})
过时的答案
在这里找到答案:https://github.com/dlmanning/gulp-sass/issues/55#issuecomment-50882250 https://github.com/dlmanning/gulp-sass/issues/55#issuecomment-50882250
使用默认设置编译 sass 文件不起作用。不过,有一个解决方法。如果您传递 sourceComments: 'normal' 作为参数,则编译工作。原因是有一个奇怪的情况改变了文件的处理方式:https://github.com/dlmanning/gulp-sass/blob/master/index.js#L23-L27 https://github.com/dlmanning/gulp-sass/blob/master/index.js#L23-L27
代码示例在这里找到:https://github.com/chrisdl/gulp-libsass-example/blob/master/gulpfile.js https://github.com/chrisdl/gulp-libsass-example/blob/master/gulpfile.js
var gulp = require('gulp');
var sass = require('gulp-sass');
// Run with "> gulp sass" in terminal.
gulp.task('sass', function () {
gulp.src('./sass/main.sass')
.pipe(sass({sourceComments: 'normal'}))
.pipe(gulp.dest('./css'));
});
Notice
如果您在使用此代码片段时遇到问题,请查看以下引用和问题。
使用此解决方法将导致 gulp 管道中较早的文件内容(例如较早的插件)的任何更改被丢弃 - JMM
https://github.com/dlmanning/gulp-sass/issues/158 https://github.com/dlmanning/gulp-sass/issues/158
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)