file-loader返回object Module 路径的问题
新版本的 file-loader生成使用ES模块语法的JS模块,所以它加载的文件,不再返回路径,而是返回一个对象,通过对象.default属性,可以取得路径
所以第一种方法,可以修改路径
<img src="require('assets/logo.png').default"/>
显然这样很麻烦,可以在配置时,禁用es语法
esModule: false
test: /\.(jpg|png|svg|gif|jpeg|otf|ttf)$/, use: { loader: "file-loader", options: { outputPath: "imgs/",//定义这个是,最终url解析为imgs/**.png name: "[name].[hash:8].[ext]",//8表示截取 hash 的长度 esModule: false, useRelativePath: true//这个必须与 outputPath 结合使用才可以处理 css 中的引入的图片 } }