没有特定文件名部分的文件的Webpack加载器测试

8

我将我的测试文件放在与组件相同的文件夹中,并尝试为所有文件应用webpack加载器(istanbul-instrumenter-loader),但不包括名为spec.js或以*Spec.js结尾的文件(因此components/SupportPage/spec.jsactions/SupportActionsSpec.js都不会被包含)。我已经尝试在regextester.com上获取正确的正则表达式,但无法使其工作。我错过了什么吗?


尝试使用 *[sS]pec.js*/*[sS]pec.js - Tushar
Webpack使用正则表达式,而不是glob。 - Steven
2个回答

6

好的,我找到了。编写一个单独的测试以包含所有文件但排除特定的规范文件可能是错误的方法,我是这样解决的:

      {
        test: /.\.js$/,
        exclude: /(node_modules|bower_components)\/|.[sS]pec\.js$/,
        loader: 'istanbul-instrumenter'
      }

你应该在正则表达式中转义 .\.[sS]pec/(node_modules|bower_components)\/|\.[sS]pec\.js$/ - Precastic

0

我来到这里是为了解决一个与 Angular 2 组件样式相关的类似问题,该问题是通过 styleUrls 导入的。我认为我会将我的解决方案作为对接受答案的扩展,以供后人参考。

此解决方案区分需要使用 to-string-loader 加载的组件样式和可以使用 style-loader 加载的其余样式。

如果您按以下方式配置组件:

@Component({
    selector: 'admin',
    styleUrls: ['./admin.component.scss'],
    templateUrl: './admin.component.html'
})

你可以使用以下规则:

// For components `to-string-loader`
{
    test: /\.css$/,
    use: ['to-string-loader', 'css-loader'],
    include: /\.component\.css$/
},

// For non-components `style-loader`
{
    test: /\.css$/,
    use: ['style-loader', 'css-loader'],
    exclude: /\.component\.css$/
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接