10

所以我有以下情况。当我仅从 CLI 使用指南针时,它就可以正常工作并且完全符合要求。我compass compile从文件所在的同一文件夹config.rb(在styles文件夹中)运行。它还包含sasscss目录。这是我的config.rb文件:

project_path = '.'
css_dir = "css"
sass_dir = "sass"
images_dir = "../../data/images"
javascripts_dir = "../scripts"

output_style = :compressed
environment = :development
relative_assets = true

当我尝试使用grunt它时,我使用以下配置Gruntfile.js

compass: {
    compile: {
        options: {
            basePath: 'app/src/styles',
            config: 'app/src/styles/config.rb'
        }
    }
}

app文件夹和Gruntfile.js位于同一级别。当我运行时,grunt compass我看到以下输出:

Running "compass:dist" (compass) task
Nothing to compile. If you're trying to start a new project, you have left off the directory argument.
Run "compass -h" to get help.

Done, without errors.

如果我尝试直接指定所有选项,例如:

compass: {
    compile: {
        options: {
            basePath: 'app/src/styles',
            sassDir: 'app/src/styles/sass',
            cssDir: 'app/src/styles/css',
            imagesDir: 'app/data/images'
        }
    }
}

它完成了这项工作,但该.sass-cache文件夹是在Gruntfile.js. basePath所以我想配置选项存在一些问题。

难道我做错了什么?


编辑
我设法使其工作的唯一方法是将config.rb文件移动到 的级别Gruntfile.js,并在其中指定以下选项:

project_path = 'app/src/styles'
css_dir = "css"
sass_dir = "sass"
images_dir = "../../data/images"
javascripts_dir = "../scripts"

output_style = :compressed
environment = :development
relative_assets = true

此外,我从“Gruntfile.js”中删除了与此任务有关的所有选项。仍然不确定,这里发生了什么。

4

2 回答 2

3

尝试不要在 Grunt 配置中设置 basePath,即:

compass: {
   compile: {
     options: {
        basePath: 'app/src/styles',
        config: 'app/src/styles/config.rb'
    }
  }
}

变成:

compass: {
       compile: {
         options: {
            config: 'app/src/styles/config.rb'
        }
      }
    }

还可以Grunt Compass使用 --verbose 开关 ( grunt compass --verbose) 运行您的文件,以查看 grunt 试图处理的文件。

请注意,您添加到 Grunt 文件中的选项的任何设置都将覆盖(或扩展)您的 config.rb 文件中的设置。

查看此页面:https://github.com/gruntjs/grunt-contrib-compass查看有关 grunt-contrib-compass 的更多信息。他们有关于所有可能选项的信息。

于 2013-08-17T07:55:22.630 回答
0

如果您的项目需要与 config.rb 不同的基本路径,您可以在 config.rb 中设置路径(甚至是相对路径)

示例 config.rb

project_path    = "../src/main/webapp/"
http_path       = "./"
css_dir         = "css"
sass_dir        = "../library"
images_dir      = "assets/images"
fonts_dir       = "assets/fonts"
javascripts_dir = "assets/js"

...

relative_assets = true

示例 SCSS

.stylesheet-url {
  content:stylesheet-url("style.css");
}

.font-url {
  content:font-url("font.woff");
}

.image-url {
  content:image-url("image.png");
}

.generated-image-url {
  content:generated-image-url("image2.png");
}

示例 CSS

.stylesheet-url {
  content: url('style.css');
}

.font-url {
  content: url('../assets/fonts/font.woff');
}

.image-url {
  content: url('../assets/images/image.png');
}

.generated-image-url {
  content: url('../assets/images/image2.png');
}

我们在 Win7 x64 上运行 Compass 0.12.latest

于 2013-12-12T15:39:15.573 回答