Grunt/bower Bourbon 升级破坏了字体混合

Grunt/bower Bourbon Upgrade breaks font-face mixin

我刚刚升级了我的 grunt/angular 项目

"bourbon": "3.2.0",
"neat": "1.5.0",

"bourbon": "~4.2.3",
"neat": "~1.7.2",

(来自我的bower.json)

在此升级过程中,bourbon 文件结构从:

bower_components/bourbon/dist/bourbon'

至:

bower_components/bourbon/app/assets/stylesheets/bourbon'

这个我有把握,或者至少我认为我有把握。

现在,每当我尝试使用 grunt 构建时,我都会遇到以下 sass 问题:

Running "sass:dist" (sass) task
Warning: [my_app_path]/bower_components/bourbon/app/assets/stylesheets/helpers/font-source-declaration:22: error: error reading values after eot

问题出现在此处格式映射的第一个条目中:

@function font-source-declaration(
  $font-family,
  $file-path,
  $asset-pipeline,
  $file-formats,
  $font-url) {

  $src: ();

  $formats-map: (
    eot:  "#{$file-path}.eot?#iefix" format("embedded-opentype"),
    woff2: "#{$file-path}.woff2" format("woff2"),
    woff:  "#{$file-path}.woff" format("woff"),
    ttf:  "#{$file-path}.ttf" format("truetype"),
    svg:  "#{$file-path}.svg##{$font-family}" format("svg")
  ); 

首先,我如何验证 $file-path bourbon 试图引用的是什么?我浏览了其他 .scss 文件,没有看到硬定义,甚至没有看到以编程方式确定的路径(我认为这可能只是因为我不知道去哪里看。

我是否缺少另一个依赖库?

在ruby这边我有 sass (3.4.16) scss_lint (0.40.1)

scss_lint 已从 scss-lint 0.26.2 升级(包名称从连字符变为下划线)

所以,问题出在应用程序使用非常旧版本的 grunt-sass。

我把它从 0.14.0 升级到 ^1.0.0,一切正常。