Webpack加载器测试没有文件名某些部分的文件

Webpack loader test for files without certain part of filename

我将我的测试保存在与我的组件相同的文件夹中,并且我正在尝试将 webpack 加载程序 (istanbul-instrumenter-loader) 应用于所有文件,除了那些恰好称为 spec.js 或那一端的文件使用 *Spec.js(因此 components/SupportPage/spec.jsactions/SupportActionsSpec.js 都不会被包括在内。我已经尝试在 regextester.com 上获得正确的正则表达式,但我无法让它工作。我错过了什么吗?

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

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

我来到这里是为了解决与通过 styleUrls 导入的 Angular 2 个组件样式相关的类似问题。我想我会添加我的解决方案作为后代接受的答案的扩展。

此解决方案区分需要使用 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$/
}