Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 网页包模块测试regexp不工作_Javascript_Webpack_Webpack 4 - Fatal编程技术网

Javascript 网页包模块测试regexp不工作

Javascript 网页包模块测试regexp不工作,javascript,webpack,webpack-4,Javascript,Webpack,Webpack 4,此配置不能让logo.png和logo3.png由文件加载器加载 如果我将regexp更改为/(logo.png | logo3.png)/,它将正常工作 为什么旧的正则表达式不起作用?首先,您的正则表达式实际上起作用了 你可以到这里在线测试你的正则表达式模式。这是一个测试正则表达式的非常好的页面 其次,我认为,可能您的第二条规则没有测试配置初始化。 您可以尝试添加test://\(jpg|png)$/在您的第二个规则配置中,您使用的是^,这意味着文件名应该严格从logo.png开始,并且在内

此配置不能让
logo.png
logo3.png
文件加载器加载
如果我将regexp更改为
/(logo.png | logo3.png)/
,它将正常工作


为什么旧的正则表达式不起作用?

首先,您的正则表达式实际上起作用了
你可以到这里在线测试你的正则表达式模式。这是一个测试正则表达式的非常好的页面

其次,我认为,可能您的第二条规则没有测试配置初始化。

您可以尝试添加
test://\(jpg|png)$/
在您的第二个规则配置中,您使用的是
^
,这意味着文件名应该严格从
logo.png
开始,并且在内部webpack可能会添加路径,如
/path/to/logo.png
,并且您的条件
严格以logo.png
开始失败,因此您的文件无法获取包括在内


当您删除
^
时,根据
/(logo.png | logo3.png)/

以下是使用webpack 4的示例:

  module: {
    rules: [
      {
        test: /\.(jpg|png)$/,
        exclude: /(^logo\.png$|^logo3\.png$)/,
        use: [{
          loader: 'url-loader',
          options: {
            limit: 15 * 1024,
            name: "imgs/[name].[ext]"
          }
        }]
      },
      {
        include: /(^logo\.png$|^logo3\.png$)/,
        use: [{
          loader: 'file-loader',
          options: {
            name: 'imgs/[name].[ext]'
          }
        }]
      }
    ]
  }
见:


相当难的正则表达式。。。你能试试这个/logo3吗?\.png$/也不要使用“^”,因为文件名包括到资源的路径(即user/app/src/logo.png)。是的,我忘记了资源的路径。如果我使用^,测试将为false。也许你可以发布一个答案,这样我就可以结束我的问题了。
        {
            test: /.(ts|tsx)?$/,
            loader: 'ts-loader',
            exclude: {
                or: [
                    function(item){
                        console.log('regex match', item)
                        return item.match(/(.*)stories.tsx/)
                    },
                    path.resolve(__dirname, 'frontend/@types'),
                    path.resolve(__dirname, 'node_modules'),
                    path.resolve(__dirname, 'frontend/data'),
                ],
            },
            include: [
                path.resolve(__dirname, 'frontend'),
            ],
            options: {
                // disable type checker - we will use it in fork plugin
                transpileOnly: true,
            },
        },