我用 Sassc (2.4.0) 有什么问题,或者它只是一个错误,任何对 color.new(...) 的调用都会导致错误?

What do I wrong with Sassc (2.4.0) or is it just a bug, that any call to color.new(...) leads to an error?

提问人:halfbit 提问时间:3/24/2023 更新时间:3/24/2023 访问量:47

问:

对于不耐烦的人:快速复制:

begin
    color=SassC::Script::Value::Color.new()
rescue Exception => e
    puts e
end

---------> 无法确定颜色配置¹

begin
    color=SassC::Script::Value::Color.new(1,2,3)
rescue Exception => e
    puts e
end

--------->错误的参数数量(给定 3,预期为 0)

¹ 此错误与原始 Gem 来源相吻合:

  # Creates a new color with (`red`, `green`, `blue`) or (`hue`, `saturation`, `lightness`
  # values, plus an optional `alpha` transparency value.
  def initialize(red:nil, green:nil, blue:nil, hue:nil, saturation:nil, lightness:nil, alpha:1.0)
    if red && green && blue && alpha
      @mode = :rgba
      @red = SassC::Util.clamp(red.to_i, 0, 255)
      @green = SassC::Util.clamp(green.to_i, 0, 255)
      @blue = SassC::Util.clamp(blue.to_i, 0, 255)
      @alpha = SassC::Util.clamp(alpha.to_f, 0.0, 1.0)
    elsif hue && saturation && lightness && alpha
      @mode = :hsla
      @hue = SassC::Util.clamp(hue.to_i, 0, 360)
      @saturation = SassC::Util.clamp(saturation.to_i, 0, 100)
      @lightness = SassC::Util.clamp(lightness.to_i, 0, 100)
      @alpha = SassC::Util.clamp(alpha.to_f, 0.0, 1.0)
    else
      raise SassC::UnsupportedValue, "Unable to determine color configuration for"
    end
  end

版本:

  • 轨道 7.0.4.2

  • 红宝石 2.7.7p221

  • SASSC(2.4.0)

更详细的解释:

我正在从 迁移到 .我正在使用 Sass 的手动完整外部功能扩展。SassSassC

我很快就得到了错误to_s() wrong number of arguments (given 1, expected 0)

我开始为猴子打补丁以解决方法,但总是以这样的错误告终SassCwrong number of arguments (given n, expected 0)

在修补了几乎一半的功能后,我放弃了,因为这不是(猴子)补丁的想法。

结论:

我(几乎)让我的函数运行起来,但是在替换了大约 10 个原始函数之后 - 大部分替换为 ,我认为,有问题。SassCto_s(opts)to_s

我的错,还是 SassC 错误?

Ruby-on-Rails 萨斯克

评论

0赞 max 3/24/2023
您应该考虑的一件事是,Sass C 编译器 (libsass) 早在 2020 年就被弃用了。Dart-Sass 是目前唯一支持的 Sass 实现。我不会花很多精力来获得与 Sass-c 宝石一起使用的东西,因为它不是面向未来的。
0赞 max 3/24/2023
值得注意的是,Libsass 不支持新的模块系统 - 它取代了有问题的 .@use@include
0赞 halfbit 3/24/2023
max: Dart Sass 是否支持外部用户定义的函数,将数据传递到我的 Rails 项目中?据我了解,外部 - 是的 - javascript。但没有办法回到我的项目。
0赞 max 3/24/2023
不确定。难道不能用 sass 编写的函数或内置函数来做任何事情吗?

答: 暂无答案