3

我正在使用最新的 yeoman build 1.0.0beta3 和 compass 0.12.2 构建一个单页应用程序

开始compass:server时出现很多错误,但在开发期间,我的浏览器似乎一切正常。grunt buildthen 不会失败,但会构建不正确的 CSS 输出,从而导致浏览器中的布局被破坏。也许这都是我的错,是误会造成的。

我所拥有的是一个main.sass包含我所有内容的文件:

// compass
@import 'compass'
@import 'compass/reset'
@import 'compass/css3'
... and so on

//custom includes in the right order
@import 'base/dimensions'
@import 'base/colors'
@import 'base/layout'

该文件base/dimensions现在定义:

// height of the footer
$footer-height: 50px

并且(稍后)在base/layout我使用它:

.content-bg
  background-color: rgba(0, 0, 0, 0.05)
  bottom: $footer-height
  ... and more

现在启动 grunt 和 compass 服务器时,出现以下错误:

Running "compass:server" (compass) task
directory .tmp/styles/ 
  create .tmp/styles/avendor_font-awesome.css 
  create .tmp/styles/base_colors.css 
  create .tmp/styles/base_dimensions.css 
  error app/styles/base_layout.sass (Line 23: Undefined variable: "$footer-height".)

还有很多类似的错误。(在开发期间,页脚高度确实没问题。)

我不知道如何解决这个问题,我也不知道这是否会在构建运行后导致不正确的 CSS。但是当我通过发布构建时,grunt我在控制台中看到了相同的错误。

我应该提一下,我对 Gruntfile.js 做了一些更改,因此 .sass 文件也可以从 /styles 的子目录加载:

grunt.initConfig({
    yeoman: yeomanConfig,
    watch: {
        coffee: {
            files: ['<%= yeoman.app %>/scripts/{,*/}*.coffee'],
            tasks: ['coffee:dist']
        },
        coffeeTest: {
            files: ['test/spec/{,*/}*.coffee'],
            tasks: ['coffee:test']
        },
        compass: {
            **files: ['<%= yeoman.app %>/styles/{,**/}*.{scss,sass}'],**
            tasks: ['compass']
        },
        livereload: {
            files: [
                '<%= yeoman.app %>/*.html',
                '{.tmp,<%= yeoman.app %>}/styles/{,*/}*.css',
                **'{.tmp,<%= yeoman.app %>}/styles/{,**/}*.css',**
                '{.tmp,<%= yeoman.app %>}/scripts/{,*/}*.js',
                '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,webp}'
            ],
            tasks: ['livereload']
        }
    },

任何人都可以启发我吗?

问候菲利克斯

4

1 回答 1

9

对于面临同样问题的每个人:文件的命名就可以了。要包含在 main.css 中的每个文件都像这样:

@include 'base/colors'

必须命名为:

_colors.sass

代替:

colors.sass

在这种情况下的base目录中。我也做的是重命名main.cssmain.css.sass

现在一切正常,我又学到了另一件事。

于 2013-03-25T09:02:58.617 回答