我有几个模块包含类似 border-radius
的内容, $btnBgColor
, up-arrow
.
大多数其他模块需要 import
他们在一个地方或另一个地方,所以我想知道我是否可以 import
他们在 SCSS
编译器级别这样我就可以像使用内置工具一样使用这些常用工具。
我使用的 SCSS 实现是 pyscss .
Scss
编译器构造函数接受 scss_files
参数,我认为它可能被用来预导入一些文件,所以我尝试了类似的东西:
compiler = scss.Scss(scss_files={path: source})
compiler.compile("a { background: $btnBgColor; }")
哪个没用。
最佳答案
是的,这确实是可能的,而且事实上已经有成熟的解决方案。
它叫做 Compass .
关于什么是 Compass 存在很多歧义,这是我尝试解决它的非规范尝试。
指南针是同一个名字下的三种不同的东西:
- A standard用于创建可重用的 SASS 模块,就像您想要的那样。这些模块称为“Compass 扩展”。 Compass 扩展基本上是以特定方式组织的 SASS 代码片段,以 Ruby 形式分发 gems .它们还可以包含用于引入自定义 SASS 函数的 Ruby 代码。
compass
命令行工具 用于编译支持这些扩展的 SASS。请注意,它只是原始 SASS 编译器的包装器,而不是独立的编译器。以下是它的主要特点:compass
允许仅使用名称和省略路径导入扩展,例如。 G。@import singularity
.- 依赖于
config.rb
配置文件。config.rb
是一段 Ruby 代码。最好的一点是您可以使用强大的 Ruby 声明自定义 SASS 函数! - 它还为您的 SASS 项目强加了特定的文件/文件夹结构,称为“Compass 项目”。一个非常基本的 Compass 项目由一个配置文件、一个用于 SASS 代码的文件夹和一个用于生成的 CSS 代码的文件夹组成。一些 Compass 扩展包含模板,允许您创建具有更高级结构的新 Compass 项目(我推荐 Toolkit 扩展)。
- 指南针 extension同名(即 SASS 中的
@import compass
),其中包含许多无价的 SASS 混入和函数。
如果您要根据需要创建一个 Compass 扩展,您可以使用 this作为初学者工具包(请注意,初学者工具包名称中的"template"一词与上述含义不同)。
PS 您使用的是 pyScss,它声称完全支持 Compass。然而,我认为这是一种不好的做法。我宁愿使用原生 SASS 和 Compass 软件。使用像 RVM 这样的 Ruby 工具、RubyGems 和 Bundler ,它的执行和维护都非常简单,即使您的项目不是使用 Ruby 编写的。你的项目的复杂性增加了,但它通过使用 native 工具而不是一些可疑的端口的简单性让你得到返回。另见 How to use Compass/Sass with Django .
另请查看 Grunt和 Yeoman ,这被认为是改进您的开发工作流程的最现代的做法。
引用资料
- Compass
- The format of Compass extensions' internals
- RubyGems , 一个基于 Ruby 的软件包管理系统
- Toolkit ,一个 Compass 扩展,包含许多 SASS 好东西,包括 Compass 项目的通用模板
- Documentation for "Compass" Compass extension
- Compass-Extension-Template ,用于创建新的 Compass 扩展的入门工具包
- RVM ,一种用于为 Linux 和 Mac 安装最新版本的 Ruby 的工具
- Bundler ,一种管理每个项目(而不是每个操作系统)gem 的工具
- How to use Compass/Sass with Django ,Eric Meyer 的一篇博文,鼓励使用原生 Compass 命令行工具,而不是将 SASS 和 Compass 集成到您的框架中。
- Grunt ,一种用于编程和执行各种开发例程的工具
- Yeoman ,形成现代开发工作流程的工具和最佳实践的集合;包括咕噜声
关于python - 编译SCSS时默认导入常用模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17315450/