2013-09-29 128 views
7

我想将Compass添加到我现有的项目中。 我要保持我目前的项目结构,它看起来像这样(简化):下\资产\ CSS \ SCSS指南针config.rb位置

app/ 
build/  
|-compass/ 
assets/ 
|-css/ 
    |-scss 
|-js/ 
|-img/ 

所以我想我所有的SASS文件,我想输出编译CSS文件到\ assets \ css

运行:

compass create --bare --sass-dir "assets\css\scss" --css-dir "assets\css" 

直属我的根创建罗盘config.rb文件。

但是,我希望该文件在\ build \ compass之下。

  1. 如何控制Compass创建config.rb文件的位置?
  2. 罗盘文档指出config.rb中的声明(例如css_dir,sass_dir等)都是相对于project_path的。我在哪里定义project_path?

回答

3

Compass在与运行命令的位置相同的目录中创建config.rb。项目路径是config.rb所在的位置。只要您调整资产的路径,就可以随意将config.rb放置在任何地方。

+0

我从项目根目录运行命令,这就是创建config.rb的地方。如果我移动文件,Compass如何知道我将它移动到哪里?例如,它需要知道为了运行编译命令。此外,在移动文件后,这里定义的路径需要保持相对于我运行命令的位置,而不是新位置。那么我怎样才能移动文件? – elanh

+0

您从config.rb的同一目录运行'sass watch'(或编译) – cimmanon

+2

这对我来说非常困惑。为什么图书馆希望它可以使用通用名称,如“config”并将其放在根目录中?我正在努力使这个版本与余烬和购买的主题一起工作,但不清楚如何与其他工具做出自己的假设。 – aceofspades

1

这是config.rb的例子:

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

# Set this to the root of your project when deployed: 
http_path = "/" 
css_dir = "../../assets/css" 
sass_dir = "../../assets/css/scss" 

# You can select your preferred output style here (can be overridden via the command line): 
# output_style = :expanded or :nested or :compact or :compressed 
output_style = :expanded 

# To disable debugging comments that display the original location of your selectors. Uncomment: 
line_comments = false 

# Enable source map 
sourcemap = true 

而与此config.rb设置,你的项目文件夹应该像(为你写):

MyFolder 
├ app 
├ build 
│ └ compass 
│ └ config.rb 
└ assets 
    ├ css/ 
    │ └ scss/ 
    ├ js 
    └ img 

如果你不没有config.rb,只需创建一个新文件“config.rb”并复制/粘贴到我写的配置中。

打开终端,在MyFolder中/编译/指南针进入,然后开始你的指南针命令,如:compass watch


记住

你必须在同一文件夹来执行你的指南针命令config.rb文件在哪里。所以在这种情况下在MyFolder/build/compass中。否则指南针不起作用。

-1

我不明白你为什么要构建这样的项目......我的意思是为什么不把scss放在build中,然后资产中的所有东西都可以用于生产?因此: 1。 (从 “应用程序” 目录)

compass create build --http-pat="../" --sass-dir="compass/scss" --css-dir="../assets/css" --javascripts-dir="../assets/js" --images-dir="../assets/img" 

将创建项目文件夹和文件作为这样运行:

app 
|-- build 
|  |--config.rb 
|  |-- compass 
|   |-- scss 
|-- assets 
|  |-- css 
|  |-- img 
|  |-- js 
  • 再次,从应用程序的目录内,运行:
  • compass config "build/config.rb" --http-pat="../" --sass-dir="compass/scss" --css-dir="../assets/css" --javascripts-dir="../assets/js" --images-dir="../assets/img"

    会简单地创建构建目录的d放置一个包含这些值的配置文件。

    +0

    为什么OP想要拥有自己的目录?它看起来并不像你回答这个问题。 – cimmanon

    +0

    我的回答非常好。如果他希望资产/ css文件夹中的scss只需修改--sass-dir。我的答案与多个场景或文件夹结构相关。 –

    +0

    而我关于分离scss输出的观点是完全有效的! –