从业力中排除 scss 文件

Posted

技术标签:

【中文标题】从业力中排除 scss 文件【英文标题】:Exclude scss files from karma 【发布时间】: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 的对象)。你在找什么? 【参考方案1】:

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

类似的东西:

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

【讨论】:

我安装了 null-loader 并将其粘贴到两个 webpack.config 文件中,但我仍然遇到相同的无法文件模块错误。 能分享一下出错的小代码吗(在github上) 什么样的代码? webpack.config 和/或 karma.config? 如果可能的话,小项目只有一个测试和重现问题的业力 + webpack 配置 当然。可能需要一点时间来整理。

以上是关于从业力中排除 scss 文件的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法从业力覆盖文本报告器结果中排除所有 100% 或阈值的文件?

如何使用 isparta 从业力的代码覆盖范围中排除第三方导入(如 jquery)?

业力配置以排除嵌套目录

SCSS/SASS 文件不适用于电子 nuxt

singleRun = true 时未创建业力覆盖文件

找不到业力覆盖