如何在预编译期间包含自定义 SASS 函数?

Posted

技术标签:

【中文标题】如何在预编译期间包含自定义 SASS 函数?【英文标题】:How do I include custom SASS functions during precompile? 【发布时间】:2012-01-30 23:20:40 【问题描述】:

我已经使用 Ruby 代码 (http://sass-lang.com/docs/yardoc/Sass/Script/Functions.html#adding_custom_functions) 成功地扩展了一些 SASS 函数,并且我的扩展在开发中正确加载,但是当我预编译我的资产时,没有加载扩展。代码位于 /app/models 中,但这可能不是最好的地方。

我尝试在几个不同的配置文件中明确要求该文件,但在预编译期间它仍然无法加载。这似乎也是一种糟糕的方法。

我知道代码无法加载,因为预编译的 CSS 将 CSS 中的函数名称保留为纯文本。不会抛出任何错误。

那么:像这样的文件在哪里存放的最佳位置,以及如何让 SASS 在预编译期间加载文件?

【问题讨论】:

【参考方案1】:

问题最终是我错误地要求该文件,使用的是配置根目录而不是应用程序根目录。假设尝试包含不存在的文件时会引发错误,但显然不是。有一次,我在 config/application.rb 中正确地需要文件,预编译器能够访问我的 SASS 扩展

require "#Rails.root/lib/assets/colorable.rb"

【讨论】:

我使用的是 rails 3.2.3,不得不改用 require File.expand_path("lib/assets/colorable.rb")application.rb 的 Rails.root 变量为空

以上是关于如何在预编译期间包含自定义 SASS 函数?的主要内容,如果未能解决你的问题,请参考以下文章

资产预编译期间未找到文件错误

Huggingface 微调 - 如何在预训练的基础上构建自定义模型

Keras:如何在编译期间输入形状未知时创建带权重的自定义图层?

使用 gulp 编译 Sass

CakePHP 3自定义验证:如何在编辑期间将新值与旧值进行比较?

如何在 Angular 中使用带有 SASS 的 Bootstrap 4