Webpack 文件加载器只输出 PNG 文件

Webpack file-loader ONLY outputs PNG files

我目前正在尝试将现有项目合并到 webpack 2。我目前正在努力解决的问题之一是文件加载器。通常你会期望它从 <img>background-image 来源获取所有图像文件,然后将它们放在你的 dist 文件夹中。

这目前在我的 webpack.config.js

module.exports = {
context: path.resolve(__dirname, 'src'),
entry: {
    main: './main.js'
},
output: {
    path: path.resolve(__dirname, './dist'),
    publicPath: "/dist",
    filename: '[name].js'
},
module: {
    rules: [
         //...
        {
           test: /\.(jpg|jpeg|png|svg)$/,
           use: [{
              loader: 'file-loader?name=[name].[ext]&outputPath=/images/'
            }]
        },
        //...
        ]
     }
};

在运行 webpack 命令之后,我的dist 文件夹有一个images 文件夹,它 包含PNG 文件。由于某些原因,所有其他文件都被忽略了。

几天来我一直在努力解决这个问题,我找不到合理的解释为什么会发生这种情况。

我认为问题在于 webpack 仅通过 @importurl() 从样式表中获取图像,而在 javascript 中当您需要像 const src = require('./logo.jpg'); 这样的图像时。 因此它不会拾取 html 文件中刚刚引用的任何图像,在您的情况下恰好是 jpegs。

copy-webpack-plugin 可能是您将这些图像也复制到 dist 所需要的。