webpack5打包图片遇到的问题与解决方案
使用webpack提供的
asset/resource
做图片的打包处理,但是只能识别css中的路径,如:
.title { color: red; background: url('/src/assets/imgs/456.jpeg'); width: 100%; height: 100vh; }
但是对于
<img src="/src/assets/imgs/123.jpeg" alt="" />
却无能为力。
所以采用了覆盖式的处理方法,即
const CopyPlugin = require("copy-webpack-plugin"); //拷贝指定文件夹原样打包到指定目录 new CopyPlugin({ patterns: [{ from: "./src/assets/imgs", to: "./src/assets/imgs" }], }),
这个插件可以不打包做原样复制到输出文件
最后一步就是配置一下
output: { assetModuleFilename: "src/assets/imgs/[name][ext]", },
就是
assets模块的文件输出地址。这样的话相同文件会覆盖,然后就不会打出来的包里面有相同的文件不同的名字了,但是这个解决办法应该不是最终的解决办法,如果有更好的办法希望大家给予指出
积累小的知识,才能成就大的智慧,希望网上少一些复制多一些原创有用的答案