指南针:您必须从项目目录中编译单个样式表

dav*_*ave 25 sass compass-sass

前段时间我正在使用指南针从sass为项目生成样式表.

最近我回到了那个项目.我去了我的sass目录并做了"指南针观察 - 调试.:." 这会生成错误"您必须从项目目录中编译单个样式表".

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

http_path = "/"
css_dir = "/css"
sass_dir = "/css"
images_dir = "/img"
javascripts_dir = "/js"
preferred_syntax = :sass
Run Code Online (Sandbox Code Playgroud)

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

如何让罗盘实际处理我的sass?

Joh*_*ith 40

刚刚遇到这个问题,Arnaud Valle的评论已经回答了这个问题.但为了清晰起见,人们后来搜索.

只是创建一个config.rb将无法正常工作,因为罗盘无法识别它.答案是切换到项目目录(root)然后运行

compass init
Run Code Online (Sandbox Code Playgroud)

这将创建一个"工作"的config.rb,在sass目录中有两个名为sass和stylesheets的目录将是一些启动scss文件.

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

哦,我怀疑你的js不会在javascripts文件夹中,所以在config.rb中编辑它

无论如何已经完成了(或没有)你应该能够运行

compass watch
Run Code Online (Sandbox Code Playgroud)

并且所有都应该是好的,即你的scss文件被编译成css文件

作为替代方案,我没有尝试过,但理论上

compass compile [path/to/scss]
Run Code Online (Sandbox Code Playgroud)

也应该工作,如果你不想初始指南针

更多信息可在罗盘文档中找到

并且完全超越顶部,如果这是你经常发现的事情,并且讨厌默认值,那么编辑/添加以下内容到〜/ .bash_profile

alias compass_init="compass init --syntax=sass --css-dir=css --javascripts-dir=js"
Run Code Online (Sandbox Code Playgroud)