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 中的引入的图片
                    }
                }

 

posted @ 2021-07-27 10:07  IWing  阅读(72)  评论(0编辑  收藏  举报