Sass 使用babel节点和babel节点运行mocha测试时加载css时出错

Sass 使用babel节点和babel节点运行mocha测试时加载css时出错,sass,mocha.js,webpack,babeljs,Sass,Mocha.js,Webpack,Babeljs,我在测试用webpack导入.scs的UI组件时遇到问题。我直接测试组件代码,而不是导出的webpack包 在我的书里 我有一些导入SCS的代码: import '!style!css!sass!postcss-loader!../style.scss' 运行测试时,此代码会导致错误: Error: Cannot find module '!style!css!sass!postcss-loader!../../stylesheets/parts/Breadcrumbs.scss' at Fu

我在测试用webpack导入.scs的UI组件时遇到问题。我直接测试组件代码,而不是导出的webpack包

在我的书里 我有一些导入SCS的代码:

import '!style!css!sass!postcss-loader!../style.scss'
运行测试时,此代码会导致错误:

Error: Cannot find module '!style!css!sass!postcss-loader!../../stylesheets/parts/Breadcrumbs.scss'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:286:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
廉价的解决办法 我一直致力于解决这个问题:

try {
    require('!style!css!sass!postcss-loader!../style.scss');
} catch(err) { console.log('Not webpack'); }
但这闻起来很脏,我不希望在我的SUT中有这个代码

运行测试 当使用巴别塔节点巴别塔伊斯坦布尔而不是直接使用摩卡时,我不知道如何使用我找到的解决方案。以下是我当前运行测试的方式:

$ babel-node babel-istanbul cover _mocha -- --require ./test/setup.js --recursive 
我找到的所有答案都是直接针对摩卡咖啡的,但我没有针对以下内容进行测试:

$ mocha --compilers js:babel-core/register --require ./test/setup.js --recursive
? 我如何在编译器或安装文件中工作以告诉mocha忽略.scss文件。我敢肯定,接下来在.svg文件中我也会遇到这个问题。

如果你想忽略css呢

编辑: 如果安装模块后运行:

babel-node babel-istanbul cover _mocha -- --require ./test/setup.js --require node_modules/ignore-styles --recursive 

我确信它会起作用,请记住,您可能需要更改路径node_modules/忽略样式。我假设您的node_modules位于项目的根目录中。

因此,我在尝试使用webpack loader前缀时遇到了类似的问题,但由于没有在webpack上下文中,所以失败了

比重新布线等更好,因为覆盖了我所有的文件,能够进行路径匹配和替换

var prunk=require('prunk');
prunk.alias(/^(加载程序前缀)/,“”);

然后我修改了需要扩展处理来替换导入的内容

require.extensions['.scss']=函数(模块,文件名){
module.exports='您想要什么';
};

(确切地说,除了样式加载器自己清理外,它还能做什么呢?还要注意,样式加载器的名称有误,可以处理许多扩展)

我在我的测试运行程序顶部添加了这个,没有未找到的模块


注意实际上,我更进一步,自己使用了原始加载程序,通过fs读取文件并将其传递给加载程序,但这可能是过度杀戮,应该首先使用webpack来使用唯一的加载程序传输测试

我也有同样的问题,我一直在寻找巴别塔css加载器,如果这样的东西存在的话。