2013-06-26 39 views
2

我有幾個模塊包含諸如border-radius,$btnBgColor,up-arrow之類的東西。編譯SCSS時默認導入通用模塊

大多數其他模塊的需要import他們在一個地方或另一個,所以我不知道如果我能在SCSS編譯器級別import他們,這樣我可以使用這些常見的實用工具,就好像它們是內置

我使用的SCSS實現是pyscss。 的Scss編譯構造函數接受scss_files參數,我認爲可以用來預先進口一些文件,所以我想是這樣的:

compiler = scss.Scss(scss_files={path: source}) 
    compiler.compile("a { background: $btnBgColor; }") 

,沒有工作。

回答

8

是的,這確實是可能的,事實上已經存在一個成熟的解決方案。

它被稱爲Compass

關於Compass是什麼含糊不清,這是我非常規範的解決它的嘗試。

指南針是一個名稱下三個不同的東西:

  1. 一個standard用於創建可重用模塊SASS,就像你想要的。這些模塊被稱爲「指南針擴展」。指南針擴展基本上是以某種方式組織的SASS代碼片段,分佈爲Ruby gems。它們還可以包含用於引入自定義SASS功能的Ruby代碼。
  2. A compass命令行工具用於編譯支持這些擴展的SASS。請注意,它只是原始SASS編譯器的包裝器,而不是獨立的編譯器。這裏有它的主要特點:
    • compass允許導入擴展名只使用他們的名字和省略路徑,例如, G。 @import singularity
    • 依賴於config.rb配置文件。 config.rb是一段Ruby代碼。最好的事情是你可以用強大的Ruby來聲明自定義的SASS函數!
    • 它還爲您的SASS項目強加了特定的文件/文件夾結構,名爲「Compass項目」。一個非常基本的Compass項目由一個配置文件,一個SASS代碼的文件夾和一個生成CSS代碼的文件夾組成。一些Compass擴展包含的模板允許您創建具有更高級結構的新Compass項目(我建議使用Toolkit擴展名)。
  3. 的羅盤extension同名(即@import compass在SASS),其含有大量的寶貴SASS混入和功能。

如果你要創建一個羅盤擴展您的需求,您可以使用this作爲入門套件(請注意,在入門工具包的名稱中的「模板」是指不同的東西比上面) 。

PS你正在使用pyScss,它聲稱有完全支持Compass。然而,我認爲這是一個有點窮人的做法。我寧願使用本地SASS和Compass軟件。使用諸如RVM,RubyGems和Bundler等Ruby工具,即使您的項目不在Ruby中,也可以非常簡單地執行和維護。您項目的複雜性會增加,但它使用本地工具的簡單性而不是一些可疑的端口會讓您付出代價。另見How to use Compass/Sass with Django

也可以看看GruntYeoman,它們被認爲是改進您的開發工作流程的最現代的做法。

參考