Webpack 2 正则表达式测试失败

Webpack 2 regex test failing

我不太明白加载程序测试失败的原因。

我的目标:

测试 1:

匹配 不是 global.cssglobal.scss

的任何内容

测试 2

只有匹配global.scssglobal.css


原因是我不想让任何名为 global 的文件通过 module 选项

看来我的第一个测试是让全球。当使用 https://regex101.com/.

等工具时,我可以看到我的正则表达式都正确返回 true/false

会不会是我的问题include

求助! :)

webpack.config.js

        {

            test: /^(?!global\.s?css$).*\.s?css$/,
            include: SRC_DIR,
            use: extractPlugin.extract({
                use: [
                    {
                        loader: 'css-loader',
                        options: {
                            modules: true,
                            camelCase: true
                        }
                    },
                    {
                        loader: 'postcss-loader',
                        options: { 
                            plugins: (loader) => [require('autoprefixer')()]
                        }
                    },
                    'resolve-url-loader',
                    {
                        loader: 'sass-loader',
                        options: { sourceMap: true }
                    }
                ]
            })
        },

        {

            test: /^global\.s?css$/,
            include: SRC_DIR,
            use: extractPlugin.extract({
                use: [
                    'css-loader',
                    {
                        loader: 'postcss-loader',
                        options: { 
                            plugins: (loader) => [require('autoprefixer')()]
                        }
                    },
                    'resolve-url-loader',
                    {
                        loader: 'sass-loader',
                        options: { sourceMap: true }
                    }
                ]
            })
        }

对于测试 2,请尝试从您的正则表达式中删除 ^。测试与文件路径匹配,而不仅仅是文件名,因此从路径的开头开始将导致测试失败。

对于测试 1,您可以通过使用 test: \/.s?css$\ 捕获所有样式然后添加 exclude: \global.s?css$\ 以防止包含全局样式来简化此否定模式。