我通过angular cli建立了一个angular 6项目。
我安装了karma-scss-preprocessor作为开发依赖项来加载karma测试中的sass文件。
以下karma.config:

...
config.set({
basePath: '',
browserNoActivityTimeout: 60000,
frameworks: ['jasmine', '@angular-devkit/build-angular'],
plugins: [
  require('karma-jasmine'),
  require('karma-chrome-launcher'),
  require('karma-phantomjs-launcher'),
  require('karma-jasmine-html-reporter'),
  require('karma-coverage-istanbul-reporter'),
  require('@angular-devkit/build-angular/plugins/karma'),
  require('karma-scss-preprocessor')
],
preprocessors: {
  'styles.scss': ['scss'],
},
files: [
  { pattern: 'styles.scss', watched: true,  included: true, served: true }
],
...

现在我知道了错误:
File to import not found or unreadable: ~@onepackage/onelib/scss/all.

由于在styles.scss中导入onepackage/lib时使用了颚化符。
我试过在karma.json的插件部分添加require('node-sass-tilde-importer'),但没有解决这个问题。
有什么建议吗?

最佳答案

您必须在require('node-sass-tilde-importer')选项中调用karma-scss-preprocessor

...
plugins: [
  require('karma-jasmine'),
  require('karma-chrome-launcher'),
  require('karma-phantomjs-launcher'),
  require('karma-jasmine-html-reporter'),
  require('karma-coverage-istanbul-reporter'),
  require('@angular-devkit/build-angular/plugins/karma'),
  require('karma-scss-preprocessor')
],
scssPreprocessor: {
  options: {
    importer: require('node-sass-tilde-importer')
  }
},
...

关于angular - Karma.config:Sass波浪号导入器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52382190/

10-09 17:03
查看更多