编译SCSS时默认导入通用模块

时间:2013-06-26 08:46:13

标签: python sass

我有几个模块包含border-radius$btnBgColorup-arrow等内容。

大多数其他模块需要import在一个地方或另一个地方,所以我想知道我是否可以在import编译器级别SCSS Scss这样我就可以使用这些常用工具,就好像它们是内置工具一样。

我使用的SCSS实现是pyscssscss_files编译器构造函数接受 compiler = scss.Scss(scss_files={path: source}) compiler.compile("a { background: $btnBgColor; }") 参数,我认为该参数可用于预先导入一些文件,所以我尝试了类似的东西:

{{1}}

哪个不起作用。

1 个答案:

答案 0 :(得分:8)

是的,这确实是可能的,事实上已经存在成熟的解决方案。

它被称为Compass

关于指南针的含义有很多含糊不清的地方,这是我解决它的非规范尝试。

指南针是一个名称下的三个不同的东西:

  1. 用于创建可重复使用的SASS模块的standard ,就像您想要的那样。这些模块称为“指南针扩展”。 Compass扩展基本上是以某种方式组织的SASS代码片段,分布为Ruby gems。它们还可以包含用于引入自定义SASS函数的Ruby代码。
  2. 用于编译SASS的compass命令行工具,支持这些扩展。请注意,它只是原始SASS编译器的包装器,而不是独立的编译器。以下是它的主要特点:
    • compass 允许仅使用其名称和omittng路径导入扩展名,例如: G。 @import singularity
    • 依赖config.rb配置文件。 config.rb是一段Ruby代码。关于它的最好的事情是你可以使用强大的Ruby声明自定义SASS函数!
    • 它还为您的SASS项目强加了某种文件/文件夹结构,称为“Compass项目”。一个非常基本的Compass项目包括一个配置文件,一个用于SASS代码的文件夹和一个用于生成CSS代码的文件夹。一些Compass扩展包含允许您创建具有更高级结构的新Compass项目的模板(我推荐Toolkit扩展名)。
  3. 同名的指南针extension (即SASS中的@import compass)包含许多无价的SASS混音和功能。
  4. 如果您要根据需要创建Compass扩展程序,可以使用this作为入门套件(请注意,入门套件名称中的“模板”一词意味着与上述不同)。

    PS 您正在使用pyScss,它声称完全支持Compass。然而,我认为这是一种有点不好的做法。我宁愿使用原生SASS和Compass软件。使用诸如RVM,RubyGems和Bundler之类的Ruby工具,即使您的项目不在Ruby中,也可以非常简单地进行维护。项目的复杂性增加了,但是使用本机工具而不是一些可疑端口的简单性让您感到高兴。另请参阅How to use Compass/Sass with Django

    另请查看GruntYeoman,它们被认为是改善开发工作流程的最现代化做法。

    <强>参考