Angular karma字体很棒 - SyntaxError:无效或意外的令牌

时间:2017-05-04 10:21:49

标签: angular karma-jasmine font-awesome angular-cli

我试图在业力测试中设置字体真棒,但填充了以下错误

Chrome 58.0.3029 (Windows 10 0.0.0) ERROR Uncaught SyntaxError: Invalid or unexpected token at node_modules/font-awesome/fonts/fontawesome-webfont.woff2:1

即使存在该错误,正常的测试执行(ng test)也能正常工作,因为这会被忽略。 当我运行无头测试(ng test --browsers='PhantomJS' --single-run=true)时,这不适用,这会破坏我的自动构建管道。

我正在使用由angular / cli创建的Angular 4,为了让我的测试中的字体很棒,我在karma.conf.js中添加了以下内容

files: [
  { pattern: './node_modules/font-awesome/fonts/fontawesome-webfont.woff2*', watched: false },
  { pattern: './node_modules/font-awesome/fonts/fontawesome-webfont.woff*', watched: false },
  { pattern: './node_modules/font-awesome/fonts/fontawesome-webfont.ttf*', watched: false },
  { pattern: './node_modules/font-awesome/css/font-awesome.css', watched: false },  
],

根据我目前的研究,出现此错误是因为附加版本(例如?v = 4.4.0),而字体真棒css提取文件。 我可以通过在webpack中设置自定义加载器来修复它。

但是,由于angular / cli隐藏了这个实现,我似乎无法找到解决方案。

1 个答案:

答案 0 :(得分:2)

对我而言,只需添加:

files: [
  "node_modules/font-awesome/css/font-awesome.css",
  {
    pattern: 'node_modules/font-awesome/fonts/*',
    watched: false,
    included: false,
    served: true,
    nocache: false
  }
]

karma.conf.js - 显示的图标。