罗盘:您必须从项目目录中编译单个样式表

不久前,我使用罗盘从Sass生成项目的样式表。

最近我回到那个项目。我去了sass目录,并做了“ compass watch --debug。:”。这将产生错误“您必须从项目目录编译单个样式表”。

我发现目录中没有config.rb。所以我重新创建了一个。看起来像这样:

http_path = "/"
css_dir = "/css"
sass_dir = "/css"
images_dir = "/img"
javascripts_dir = "/js"
preferred_syntax = :sass

但是,无论我在配置中输入什么值,所有使用罗盘的尝试都会导致相同的错误。

如何获得指南针以实际处理我的性骚扰?

西门Sam2020/03/23 11:50:35

我使用遇到了同样的问题gulp-compass-compile修正了通过更改srcDir选项(即转换到--sass-dir在罗盘编译看涨期权),compass从功能./src/scsssrc/scss希望能对某人有所帮助。

Tony凯2020/03/23 11:50:35

删除目录名称前面的“ /”。

当您的源路径不正确时,会发生此错误。在您的情况下,目录中有一个额外的“ /”。删除它们应该可以解决您的问题。

正如其他人所说,使用创建config.rb compass init也将对其进行修复。

请注意,使用Grunt或运行指南针的类似跑步机时,不需要Config.rb。这可能是您的项目之前没有config.rb文件的运行方式。跑步者使用Gruntfile.js中的所有路径和选项启动指南针。在Gruntfile和config.rb中都包含路径/选项可能会导致问题。

蛋蛋猿2020/03/23 11:50:35

我通常将config.rb保存在项目目录(或根目录)中,而不是sass目录中。

文件夹结构如下:

  • config.rb
  • -CSS
  • ---无礼

另外,您的css_dir和sass_dir具有相同的值,这也可能导致您的问题。

Itachi小卤蛋2020/03/23 11:50:35

刚刚也遇到了这个问题,Arnaud Valle的评论已经回答了这个问题。但是为了清楚起见,人们后来进行了搜索。

仅创建config.rb无效,因为指南针无法识别它。答案是切换到您的项目目录(根),然后运行

compass init

然后,这将为您创建一个“工作”的config.rb,两个名为sass的目录和样式表,在sass目录中将包含两个启动scss文件。

如果您不想使用它们,或者想要使用其他目录,那么您现在当然可以编辑新创建并正常工作的config.rb,并更改目录(然后删除自动创建的旧目录)

哦,我怀疑您的js不在文件夹javascripts中,因此请在config.rb中对其进行编辑

无论如何(或不这样做),您都应该能够运行

compass watch

一切都应该很好,即您的scss文件被编译为css文件

作为我没有尝试过的替代方法,但从理论上讲

compass compile [path/to/scss]

如果您不想启动指南针,它也应该工作

要指南针文档中找到更多的信息在这里

并完全超越顶部,如果您经常这样做,并且讨厌默认设置,则将以下内容编辑/添加到您的〜/ .bash_profile中

alias compass_init="compass init --syntax=sass --css-dir=css --javascripts-dir=js"