gulp-sass无法使用带有下划线名称文件的@import完整目录进行编译

swvgeqrz  于 5个月前  发布在  Gulp
关注(0)|答案(1)|浏览(74)

快速总结,我使用@import“dir/**/*”导入大约100个左右的_filename. scss。下划线在这里很重要。如果我使用“@import“dir/specific_path/filename;“并单独添加所有文件,它们工作正常,一切都编译。但它不会对整个目录起作用。然而,如果我将文件重命名为filename.scss,一切都工作得很好,目录导入工作正常(注意,只是从文件名中删除下划线)。
这可能是gulp-sass的一个bug,但我想确保我没有丢失一些参数或其他东西。我可以重命名文件,但我想对那些不应该单独使用的文件使用convention _filename.scss。
Sass任务(gulpfile.js):

gulp.task('sass', function() {
    return gulp.src('./source/css/pattern-global.scss')
        .pipe(sourcemaps.init())
        .pipe(sass({includePaths: ['./source/_patterns/']}).on('error', sass.logError))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./source/css/patterns/'));
});

字符串
我在Drupal模式实验室网站上工作。但是目录结构并不重要,因为它是一个文件名的问题。
我调用@import的文件:

@import "../_patterns/**/*";


当文件名带有下划线时我得到的错误:

Error in plugin 'sass'


留言内容:source/css/pattern-global.scss错误:找不到要导入的文件或无法读取:../_patterns//*.父样式表:/Users/XXXXX/Sites/drupal_pattern_lab/source/css/pattern-global.scss位于source/css/pattern-global. scss的第5行
@import“../_pattern/
/*"; ^
注意:我在这里经历了很多口水战的问题,我不认为有一个符合我的问题。
总结:除了我正在编译的文件从_filename.scss重命名为filename.scss之外,所有内容都保持相同。或者在特定文件上使用@import而不是目录也可以正常工作。
谢谢

puruo6ea

puruo6ea1#

在挠头了一会儿之后,我找到了npm包gulp-sass-glob

gulp.task('sass', function() {
  return gulp.src('./source/css/pattern-global.scss')
    .pipe(sourcemaps.init())
    .pipe(sassGlob()) // this I was missing
    .pipe(sass({includePaths: ['./source/_patterns/']}).on('error', sass.logError))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('./source/css/patterns/'));
});

字符串

相关问题