对webpack url-loader配置的解析。

最近在webpack配置过程,发现官方对这块的配置写的太少了,不少坑,网上搜索结果也不匹配。只好自己配置了。对url-loader 反复的结果反复打包,最终得出了结论:对于css中引入图片的最大的体积値或者更大作为limit值,对于vue页面引用的都放入图片(images即publicPath)文件夹。为什么呢?

  
        test: /\.(jpe?g|png|gif)$/,
        use: [
          {
            loader: 'url-loader',
            options: {
              esModule: false, // 不加的话会有这种情况 img属性src="[object Module]"
              limit: 1024 * 100, // 当大于100kb时候,将文件打包到publicPath中 
              outputPath: 'images', // 将文件打包到哪里
              publicPath: 'images/',
              name: '[name].[hash:8].[ext]'
            }
          }
        ]
      
  • options的其他参数我已经有标识,在此不再做解释。

  • options中的publicPath+name=html和css引用路径的全写,那也就意味着,如果publicPath是../images/ 会导致页面上的引用路径出错,而如果publicPath改成了images/,那么css引用的路径会出错,对比以下2张打包图。

    publicPath是../images/
    publicPath是images/

  • 现在既然知道矛盾问题所在了,所以问题就是如何解决html和css文件引入路径的冲突呢?没错,那就是我前言中的那段加粗的话了。

  • 以上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。