未在导入之间共享sass变量

未在导入之间共享sass变量,sass,gruntjs,Sass,Gruntjs,我的sass文件有以下设置: base.scss @import "colors"; @import "forms"; _颜色.scss $gray: #ccc; _forms.scss form { background: $gray; } 当我运行grunt sass来构建css时,我得到以下错误: Running "sass:dist" (sass) task Syntax error: Undefined variable: "$gray". on line

我的sass文件有以下设置:

base.scss

@import "colors";
@import "forms";
_颜色.scss

$gray: #ccc;
_forms.scss

form {
    background: $gray;
}
当我运行
grunt sass
来构建css时,我得到以下错误:

Running "sass:dist" (sass) task
Syntax error: Undefined variable: "$gray".
        on line xx of sass/_forms.scss
  Use --trace for backtrace.

问题是我的sass grunt任务,我正在处理整个目录,而不仅仅是
base.scss

以下是针对任何未来有相同问题的人的修复方法:

您想查看所有文件的更改

    watch: {
        css: {
            files: './sass/**/*.scss',
            tasks: ['sass']
        }
    }
您只想处理
base.scss
,因为它包括所有其他
\u foo.scss
文件(这些文件只需查看基本文件即可处理)

    sass: {
        dist: {
            files: [{
                expand: true,
                cwd: './sass',
                src: ['base.scss'],
                dest: './public/css',
                ext: '.css'
            }]
        }
    },
如果您正在使用,则它将忽略“u”sass文件。从其自述文件:

注意:以“\”开头的文件即使与全局模式匹配,也会被忽略。这样做是为了匹配预期的模式

在版本v0.6.0中引入了相同的功能(参见其)

这两个插件都是在您提出问题后更新的


因此,您的grunt任务现在可以保持原来的状态,这将使您能够拥有多个“基本”文件—独立的sass文件,这些文件单独编译,而不编译部分文件。

请向我们展示您的grunt文件。我想这可能是问题所在。请参阅我的答案。