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

sat*_*oru 2 python sass

我有一个包含之类的东西几个模块border-radius,$btnBgColor,up-arrow.

大多数其他模块需要import在一个地方或另一个地方,所以我想知道我是否可以importSCSS编译器级别使用它们,以便我可以使用这些常用实用程序,就好像它们是内置的.

我使用的SCSS实现是pyscss.该Scss编译器的构造函数接受一个scss_files参数,我认为可以用来预先进口一些文件,所以我想是这样的:

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

哪个没用.

And*_*aus 8

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

它被称为指南针.

对于Compass来说有很多含糊不清的地方,这是我解决它的非规范尝试.

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

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

如果您要根据需要创建Compass扩展,可以将用作入门工具包(请注意,入门工具包名称中的"模板"一词意味着与上面不同).

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

还可以看看GruntYeoman,它们被认为是改善开发工作流程的最现代化的做法.

参考