Gulp sass报错File to import not found or unreadable(未找到或无法读取要导入的文件): common问题描述:
@import "common";
@import一个文件时,当你在修改这个引入文件时,时不时就会报这样的错,同时关闭进程。
events.js:183
throw er; // Unhandled 'error' event
^
Error: src\sass\index.scss
Error: File to import not found or unreadable: common.
on line 1 of src/sass/index.scss
>> @import "common";
发现问题就要解决问题,百度、Google了一下,最终还是Google靠谱点找到了这里。
原文分析:似乎是因为保存文件时的竞争条件有关系,特别是libsass太快了。也有人在Sublime Text中启用一个名为atomic_save的选项。设置"atomic_save": true解决了。可我用的VSCode编辑器。。。最终只需在尝试编译SCSS之前,让Gulp暂停几毫秒这个方案解救了我。
安装gulp-wait
npm install gulp-wait --save-dev
添加.pipe($.wait(200))到sass任务中即可:
// 编译Sass
gulp.task('sass',()=>{
return gulp.src('src/sass/!(common|reset|define).scss')
.pipe($.wait(200))
.pipe($.sass())
.pipe($.autoprefixer())
.pipe( $.if(process.env.production !== undefined, $.cleanCss()) )
.pipe(gulp.dest('build/css'))
.pipe($.connect.reload());
});
关于Gulp的坑。。。作者遇到的还有这些。