【问题标题】:Exclude scss files from karma从业力中排除 scss 文件
【发布时间】:2018-07-26 17:22:02
【问题描述】:

我希望 karma 完全忽略/不在乎/完全忘记样式文件。

我的 webpack 配置中有以下内容,这导致 webpack 在构建期间不导入文件。

plugins: [
    new webpack.IgnorePlugin(/\.(less|scss)$/), // ignore styles when running specs
    new webpack.IgnorePlugin(/client\/utils/), // ignore polyfills
],

但是,当 Karma 运行时,它会尝试执行导入,这当然会失败:

Uncaught Error: Cannot find module "./view.scss"

我尝试在我的业力配置中添加非常多的排除排列

exclude: [
    {
        pattern: '**/*.less',
        type: 'module',
    },
    {
        pattern: '**/*.scss',
        type: 'module',
    },
]

我尝试了ignore-styles(它会抛出一个开箱即用的错误)。

我只是希望它跳过样式文件,因为它们与测试无关,只是浪费时间构建。我不明白这怎么这么难。

失败的示例项目

https://github.com/JakobJingleheimer/fetch-mock-test (抱歉,npm install 可能有一些额外的包)。

当你运行测试时,你应该得到以下错误:

Uncaught Error: Cannot find module "./test.scss" at webpack:///…/src/client/TestComponent.jsx:3:0

【问题讨论】:

  • 你在使用 css 模块吗?
  • 不,我使用的是 scss(还有语义 ui-less)import './view.scss';(在 SomeView.jsx 中)
  • 你有专门的webpack.config 文件来记录因果报应吗?如果是这样,您可以配置为使用null-loader 处理*.scss 文件
  • 是的,我有一个webpack.config.testwebpack.config.coverage(它们都导出了一个只包含上面显示的plugins 的对象)。你在找什么?

标签: webpack karma-runner karma-mocha webpack-3


【解决方案1】:

您可以将您传递给karma-webpackwebpack.config 文件配置为使用null-loader 作为*.scss 文件加载器。

类似的东西:

module: {
    rules: [
      {
        test: /\.scss/,
        use: 'null-loader'
      }
    ]
  }

【讨论】:

  • 我安装了 null-loader 并将其粘贴到两个 webpack.config 文件中,但我仍然遇到相同的无法文件模块错误。
  • 能分享一下出错的小代码吗(在github上)
  • 什么样的代码? webpack.config 和/或 karma.config?
  • 如果可能的话,小项目只有一个测试和重现问题的业力 + webpack 配置
  • 当然。可能需要一点时间来整理。
猜你喜欢
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 2017-06-25
  • 2016-03-09
  • 1970-01-01
  • 1970-01-01
  • 2014-04-20
  • 2021-07-17
相关资源
最近更新 更多