Python 编译SCS时默认导入通用模块

Python 编译SCS时默认导入通用模块,python,sass,Python,Sass,我有几个模块,包括边界半径,$btnBgColor,向上箭头 大多数其他模块需要在一个地方或另一个地方导入它们,因此我想知道是否可以在SCSS编译器级别导入它们,这样我就可以像使用内置工具一样使用这些通用工具了 我使用的SCSS实现是。 Scss编译器构造函数接受一个Scss\u files参数,我认为该参数可能用于预导入一些文件,因此我尝试了如下方法: compiler = scss.Scss(scss_files={path: source}) compiler.compile("a

我有几个模块,包括
边界半径
$btnBgColor
向上箭头

大多数其他模块需要在一个地方或另一个地方导入它们,因此我想知道是否可以在
SCSS
编译器级别导入它们,这样我就可以像使用内置工具一样使用这些通用工具了

我使用的SCSS实现是。
Scss
编译器构造函数接受一个
Scss\u files
参数,我认为该参数可能用于预导入一些文件,因此我尝试了如下方法:

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

这不起作用。

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

它叫

关于什么是指南针有很多模棱两可的地方,这里是我试图解决这个问题的一个非规范的尝试

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

  • A用于创建可重用的SASS模块,如您所愿。这些模块称为“指南针扩展”。Compass扩展基本上是以某种方式组织的SASS代码片段,以Ruby的形式分发。它们还可以包含用于引入自定义SASS函数的Ruby代码
  • 一种
    compass
    命令行工具
    ,用于编译支持这些扩展的SASS。请注意,它只是原始SASS编译器的包装器,而不是独立的编译器。以下是它的主要特点:
    • compass
      允许仅使用扩展名导入扩展名,并忽略其路径,例如。g<代码>@导入奇点
    • 依赖于
      config.rb
      配置文件
      config.rb
      是一段Ruby代码。最好的是,您可以使用强大的Ruby声明自定义SASS函数
    • 它还为您的SASS项目强加了特定的文件/文件夹结构,称为“Compass项目”。一个非常基本的Compass项目由一个配置文件、一个用于SASS代码的文件夹和一个用于生成CSS代码的文件夹组成。一些Compass扩展包含的模板允许您使用更高级的结构创建新的Compass项目(我建议使用扩展)
  • 一个同名的指南针(即SASS中的
    @import Compass
    ),其中包含大量宝贵的SASS混音和函数
  • 如果要根据需要创建指南针扩展,可以将其用作初学者工具包(请注意,初学者工具包名称中的“模板”一词与上述含义不同)

    PS您使用的是pyScss,它声称完全支持Compass。然而,我认为这是一个很差的做法。我宁愿使用本地SASS和Compass软件。使用诸如RubyGems和之类的Ruby工具,即使您的项目不在Ruby中,操作和维护也非常简单。项目的复杂性增加了,但使用本机工具的简单性,而不是一些可疑的端口,会给您带来回报。另见

    还可以查看和,它们被认为是改进开发工作流程的最现代的实践

    参考资料

    • ,一个基于Ruby的软件包管理系统
    • ,一个Compass扩展,包含许多SASS产品,包括Compass项目的通用模板
    • ,一个用于创建新指南针扩展的初学者工具包
    • ,用于安装最新版本的Ruby for Linux和Mac的工具
    • ,一个工具,用于管理每个项目(而不是每个操作系统)的gem
    • ,Eric Meyer的一篇博文,鼓励使用原生Compass命令行工具,而不是将SASS和Compass集成到您的框架中
    • ,一种编程和执行各种开发例程的工具
    • ,一系列工具和最佳实践,形成现代开发工作流程;包括咕噜声