在Vue 组件打包后标签 ‘ img src=“./assets/logo.png“ ’在前台页面的路径下显示 src=[object Module]?

   日期:2020-08-06     浏览:95    评论:0    
核心提示:组件中的原始代码:打包后出现:解决方案:在配置 file-loader 的时候,设置 options 中的 esModule:false 就可以了。示例代码如下:{ test: /\\.(png|jpe?g|gif)$/i, // use: file-loader, use: [ { loader: file-loader, options: {

组件中的原始代码:

打包后出现:

解决方案:在配置 file-loader 的时候,设置 options 中的 esModule:false 就可以了。示例代码如下:

{
    test: /\.(png|jpe?g|gif)$/i,
        // use: 'file-loader',
        use: [
            {
                loader: 'file-loader',
                options: {
                    // name: './[name].[ext]',
                    esModule: false
                }
            }
        ]
}

原理解析:因为url-loader默认导出esm,而@vue/component-compiler-utils按照commonjs解析。打包后,可以查找bundle.js中关于这个图片的模块,会发现它被包裹在一个模块中,这个模块导出的是module.exports=“export default xxxxxx” ,所以最后会是一个对象。

注意:1. 路径问题:要改成一个相对路径的形式,把 ./ 去掉,那么它的意思就是一个纯的字符串,同时要考虑这个网站根目录的相对路径,而不是开发中的相对目录。
2. 在url-loader中用的就是file-loader,所以在这两个loader中更改都可以。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服