2

我有几个模块,其中包含border-radius, $btnBgColor, up-arrow.

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

我使用的 SCSS 实现是pyscss。编译器Scss构造函数接受一个scss_files参数,我认为它可能用于预导入一些文件,所以我尝试了类似的东西:

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

这没有用。

4

1 回答 1

8

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

它被称为指南针

关于指南针是什么有很多模棱两可,这是我解决它的一种非规范尝试。

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

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

如果您要根据需要创建 Compass 扩展,可以将用作入门工具包(请注意,入门工具包名称中的“模板”一词的含义与上述不同)。

PS你使用的是 pyScss,它声称完全支持 Compass。然而,我认为这是一种糟糕的做法。我宁愿使用原生 SASS 和 Compass 软件。使用RVM、RubyGems 和Bundler等 Ruby 工具,即使您的项目不在 Ruby 中,也可以非常简单地执行和维护。您的项目的复杂性增加了,但使用本机工具的简单性而不是一些可疑的端口会为您带来回报。另请参阅如何将 Compass/Sass 与 Django 一起使用

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

参考

于 2013-06-26T10:02:27.673 回答