从业力中排除 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.test
和webpack.config.coverage
(它们都导出了一个只包含上面显示的plugins
的对象)。你在找什么?
【参考方案1】:
您可以将您传递给karma-webpack
的webpack.config
文件配置为使用null-loader
作为*.scss
文件加载器。
类似的东西:
module:
rules: [
test: /\.scss/,
use: 'null-loader'
]
【讨论】:
我安装了null-loader
并将其粘贴到两个 webpack.config 文件中,但我仍然遇到相同的无法文件模块错误。
能分享一下出错的小代码吗(在github上)
什么样的代码? webpack.config 和/或 karma.config?
如果可能的话,小项目只有一个测试和重现问题的业力 + webpack 配置
当然。可能需要一点时间来整理。以上是关于从业力中排除 scss 文件的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法从业力覆盖文本报告器结果中排除所有 100% 或阈值的文件?