Compass/SASS - 并非所有文件都已编译

Mar*_*łek 5 sass compass-sass

我不知道如果不粘贴所有文件的整个代码我是否可以解释这个问题,但我会尝试.

编辑我已将整个代码添加到Github Account - My Sass结构中

我使用Windows 8.1和Compass 0.12.6

在我的public_html文件夹中,我有config.rb文件和stylesheets文件夹.在stylesheets文件夹中,我有目录sass,我保存所有sass文件.CSS文件生成到样式表/预览文件夹(用于开发目的)和样式表文件夹(用于生产目的).

我运行罗盘观看我在public_html文件夹中运行的watch.bat脚本

watch.bat的内容是:

START compass watch -c config.rb -e development
START compass watch -c config.rb -e production
EXIT
Run Code Online (Sandbox Code Playgroud)

我的config.rb文件是:

require 'compass/import-once/activate'
# Require any additional compass plugins here.

# Set this to the root of your project when deployed:
http_path = "../"

sass_dir = "stylesheets/sass"
images_dir = "img"
javascripts_dir = "js"
cache = false
relative_assets = true


add_import_path "stylesheets/sass"


if environment == :development
    css_dir = "stylesheets/preview"
    line_comments = true
    output_style = :nested
end

if environment == :production
    css_dir = "stylesheets"
    line_comments = false
    output_style = :compressed
end 
Run Code Online (Sandbox Code Playgroud)

在stylsheets/sass中我有4个文件print.scss,medium.scss,small.scss和large.scss

medium.scss和large.scss都以:

@import "base/_init";
Run Code Online (Sandbox Code Playgroud)

此文件从基础文件夹导入部分_init,这个加载另一个部分和其他部分加载另一个部分.

问题是当我改变部分内容时,Compass并不总是编译所有必要的输出文件.例如,我刚刚在_settings.scss中更改了部分内容,而这一个最终由medium.scss和large.scss加载(我提醒那两个文件具有相同的开头,因此它们都应该被编译).事实上,只有medium.scss文件被实际监视,并且没有编译large.scss文件,因为它应该在这种情况下.

我之前就遇到过这样的情况.我停止了2个观察者(CTRL + C和Y)然后再次运行我的watch.bat没有更改文件中的任何内容 - 运行后我有信息:

在15:51:33检测到的更改为:large.scss覆盖样式表/ preview/large.css指南针正在轮询更改.按Ctrl-C停止.

在15:51:33检测到的更改为:large.scss覆盖stylesheets/large.css Compass正在轮询更改.按Ctrl-C停止.

所以事实上应该看到变化,但不知何故罗盘/萨斯并不总能抓住它.

有时2名观察者都没有接受更改,我必须停止它们并再次运行watch.bat,因此以这种方式工作并不是很方便.

有时甚至会发生观察者被停止的事情(因为我提出了CTRL + C + y)但是我没有按任何东西而且在cmd中毫无疑问关闭可见.他们刚刚停了下来

问题:可能出现什么问题以及如何解决?

Alc*_*iar 5

我已经克隆并检查了您的项目结构,而您的问题仅仅是不必要地使用了一次导入插件。如果您在config.rb的第一行(激活此插件的位置)添加注释,则样式表将正常编译。您拥有的每个主要scss文件(large.css,medium.css,small.css)都呈现为单独的CSS文件,并且您无需为每个文件重复导入。

以下是禁用一次导入插件的导入顺序:

在此处输入图片说明