缩进Sass语法不适用于node-sass和gulp-sass [英] Indented Sass syntax not working with node-sass and gulp-sass

查看:492
本文介绍了缩进Sass语法不适用于node-sass和gulp-sass的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Libsass 2.0为libsass用户带来了缩进语法,但到目前为止,我无法使用 node-sass gulp -sass 。我有所有最新版本:



node-sass :0.93

gulp-sass :0.7.2

gulp :3.8.2



此设置编译。 scss 文件,甚至 .sass 文件,但不会编译缩进语法。有没有人成功编译缩进语法与节点sass和gulp?



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 .dest('./ sites / all / themes / nsfvb / css'));
});

gulp.task('watch',function(){
gulp.watch('./ sites / all / themes / nsfvb / sass / *。sass',['sass' ]);
});

gulp.task('default',['sass','watch']);



运行默认任务时出错 / p>

错误:顶级表达式无效

解决方案

更新答案:




如果要使用缩进语法文件,使用sass({indentedSyntax:true})。




  sass })



过期的答案



这里: 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/chrisdl/gulp-libsass-example/blob/master/gulpfile.js

  var gulp = require('gulp'); 
var sass = require('gulp-sass');

//在终端中运行> gulp sass。
gulp.task('sass',function(){
gulp.src('./ sass / main.sass')
.pipe(sass({sourceComments:'normal'} ))
.pipe(gulp.dest('./ css'));
});



注意



使用此代码段查看以下引用和问题。


使用此解决方法将导致对文件内容的任何更改被丢弃的gulp管道(例如早期的插件) - JMM


https://github.com/dlmanning/gulp-sass/issues/158


Libsass 2.0 brought the indented syntax to libsass users, but so far I've been unable to make it work with node-sass and gulp-sass. I have all of the latest versions:

node-sass: 0.93
gulp-sass: 0.7.2
gulp: 3.8.2

This setup compiles .scss files and even .sass files using the bracket syntax but it will not compile the indented syntax. Has anyone successfully compiled the indented syntax with node-sass and 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 when running the default task

error: invalid top-level expression

解决方案

Updated answer:

If you want to use the indented syntax (.sass) as the top level file, use sass({indentedSyntax: true}).

sass({indentedSyntax: true})

Outdated answer

Answer found here: https://github.com/dlmanning/gulp-sass/issues/55#issuecomment-50882250

With default settings compiling sass files doesn't work. However there is a workaround. If you pass sourceComments: 'normal' as parameter the compilation work. The reason for this is that there is a strange condition which change how file are handled: https://github.com/dlmanning/gulp-sass/blob/master/index.js#L23-L27

Code example found here: 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

If you run into issues using this snippet take a look at the following quote and issue.

Using this workaround will result in any changes to the file content from earlier in the gulp pipeline (e.g. earlier plugins) being discarded - JMM

https://github.com/dlmanning/gulp-sass/issues/158

这篇关于缩进Sass语法不适用于node-sass和gulp-sass的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆