gulp-sass在从scss到css的文件转换中抛出错误

swvgeqrz  于 2022-12-08  发布在  Gulp
关注(0)|答案(1)|浏览(169)

我正在尝试转换多个scss文件到单个css file.main.scss文件导入多个文件与variable.scss文件以及.当我转换为css文件时,我得到一个错误:

[09:46:00] Using gulpfile ~\722333\Projects\AOS.Core\UI\assets\gulpfile.js
[09:46:00] Starting 'styles'...
[09:46:00] Finished 'styles' after 25 ms
Error in plugin "sass"
Message:
    styles\form.scss
Error: Undefined variable: "$color-red".
        on line 53 of styles/form.scss
>>     color: $color-red;
   -----------^

如何解决此问题?
下面是我吞咽任务:

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

gulp.task('styles', async function () {
    gulp.src('styles/*.scss')
        .pipe(sass().on('error', sass.logError))
         .pipe(sass({ outputStyle: 'compressed' }))
        .pipe(gulp.dest('./css/'));
});

我主.scss文件:

@import "variables.scss";
@import "global.scss";
@import "fonts.scss";

//resets;-
html,
body {
  padding: 0;
  margin: 0;
  height: 100%;
  font-family: $font-regular, sans-serif;
  font-size: 0.625rem;
  color: $text-primary;
  background: $color-white;
}
1u4esq0p

1u4esq0p1#

简而言之:

分部的文件名应以下划线开头。
将部分重命名为_variables.scss_global.scss_fonts.scss,并将main.scss更新为:

@import "variables";
@import "global";
@import "fonts";

完整说明:

建置失败,因为sass尝试将form.scss编译为form.css,但找不到$color-red的指涉。
来自Sass-Lang.com:
按照惯例,Sass文件只用于导入,而不是自己编译,它们以_开始(如_code.scss)。这些文件称为partials,它们告诉Sass工具不要试图自己编译这些文件。导入partial时,可以省略_。
https://sass-lang.com/documentation/at-rules/import#partials

相关问题