【问题标题】:Karma.config: sass tilde importerKarma.config: sass 波浪号导入器
【发布时间】:2018-12-11 23:32:25
【问题描述】:

我通过 angular-cli 建立了一个 Angular 6 项目。

我安装了karma-scss-preprocessor 作为开发依赖项以在业力测试中加载 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'),但没有解决。

有什么建议吗?

【问题讨论】:

    标签: angular sass karma-jasmine karma-runner


    【解决方案1】:

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

    ...
    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')
      }
    },
    ...
    

    【讨论】:

    • 有效!但奇怪的是,现在有了这个配置,我得到了Chrome have not captured in 60000 ms, killing,我试图在 karma.conf.js 中增加browserNoActivityTimeout,但它似乎是一个不推荐使用的选项。
    猜你喜欢
    • 2017-10-19
    • 2016-09-03
    • 2021-11-14
    • 2019-05-22
    • 2019-07-07
    • 2020-04-19
    • 2017-08-24
    • 2013-02-03
    • 2010-10-24
    相关资源
    最近更新 更多