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,
},
},