您的位置:首页 > 其它

关于gulp-sass在编译时遇到的问题

2017-08-21 00:00 274 查看
今天在项目试水的时候,无意中在gulp-sass编译的时候报错了。特此摘下来。

首先gulp的配置文件

// sass编译
gulp.task('compile-sass', function() {
gulp.src('sass/index.scss')
.pipe(sass())
.pipe(gulp.dest('css'));
});
gulp.task('default', function() {
// gulp.watch('./*.js', ['compile-babel']);
// gulp.watch('./less/*.less', ['compile-less']);
gulp.watch('./sass/*.scss', ['compile-sass']);
// gulp.watch('./css/*.css', ['cssAutoFx']);

});

然后呢放一下我sass下的目录:



在任务配置中sass的入口是index.scss,以下是index.scss的内容,

@import 'normalize.scss';
@import '1.scss';

达到的效果是:

当我修改1.scss里的内容的时候,重新编译index.scss。

没错,他是正常编译的。。。。

我在公司遇到了什么情况呢? 由于我现在没法复现这个错误,所以我就去先去网上找了份类似的错误



解释一下这个错误:文件导入时没有发现或者无法读懂

错误出现的很怪异。。。。。

本人用vs code 编辑器 ,会出现这样的情况;

然后试了一试webstorm,发现编译通过,并不会报此类的错误;

这同时说明我写的gulp配置文件没有问题。

然后呢,我就怀疑是vs code哪个配置项没填好吧。

因为前车之鉴,我在webstorm发现一个配置项



最后一项没有打勾,意思是使用安全存储(当保存时优先保存到缓存文件)

于是呢我就猜测vs code是不是也有这个选项,当然了,很失望,我在首选项=>设置里并没有找到有关于

该选项的配置。

于是乎,怀疑是不是插件的问题,然后 将所有插件禁用,依旧没有效果。。。。。

在写这篇文档的是时候是在家写的,编译环境是一样的,编辑器版本一致,node为8版本,node-sass是我从家里带到公司的版本,然而我在家想复现这种错误的时候竟然失败了,说明以上原因总结的都不对。至于什么问题,至今未知。。。。

当然了,最后想了个折衷的办法解决掉了。

想法是:gulp配置文件没有问题,有问题的是vs code 。于是猜想:

vs code 在保存文件的时候有一个某某机制,当gulp监听到文件改变后执行任务的时候,这是这个机制还没生成我保存的文件(非常不合理的解释。。。。)。于是乎我让gulp任务延时执行,保证vs code已经完成了保存功能

// sass编译
gulp.task('compile-sass', function() {
setTimeout(function() {
gulp.src('sass/index.scss')
.pipe(sass())
.pipe(gulp.dest('css'));
}, 200);

});

于是乎,公司的也能正常编译sass了。

再一次吐槽,由于公司是局域网环境,一切开发都变得不那么容易了,也许我遇到的问题大家一辈子都不会遇到,但遇到了好歹有个参考嘛。就这样吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gulp-sass编译报错