Node.js webpack中url-loader处理图片路径

默认情况下, webpack 无法处理 css 文件中的 url 地址,不管是图片还是 字体库, 只要是 URL 地址,都处理不了,所以我们要使用 url-loader进行处理图片的url地址

安装 cnpm i url-loader file-loader -D

webpack.config.js文件
var path = require('path')
var htmlWebpackPlugin = require('html-webpack-plugin')

const webpack = require('webpack');

module.exports = {
  entry: path.join(__dirname, './src/main.js'),
  output: { 
    path: path.join(__dirname, './dist'), 
    filename: 'bundle.js' 
  },
  devServer: {  
    open: true,   
    port: 3000,   
    contentBase: 'src',  
    hot: true  
  },
  plugins: [ /
    new webpack.HotModuleReplacementPlugin(),
    new htmlWebpackPlugin({
      template: path.join(__dirname, './src/index.html'), 
      filename: 'index.html' 
    })
  ],
  module: { 
    rules: [ // 第三方模块的匹配规则
      { test: /\.css$/, use: ['style-loader', 'css-loader'] }, // 配置处理 .css 文件的 第三方 loader 规则
      { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] }, // 配置 处理 .less 文件的第三方 loader 规则
      { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'] },
      
      // { test: /\.(jpg|png|gif|bmp|jpeg)$/, use: 'url-loader'} // 不传参 图片将 转为 base64 格式的字符串
      { test: /\.(jpg|png|gif|bmp|jpeg)$/, use: 'url-loader?limit=7701460&name=[hash:8]-[name].[ext]'}
    ]
  }
}

Node.js webpack中url-loader处理图片路径_第1张图片

loader处理 图片路径

  • limit参数:给定的值,是图片的大小,单位是 byte, 如果我们引用的图片,大于或等于给定的 limit 值,则不会转为 base64 格式的字符串,如果 图片小于给定的 limit 值,则会被转为 base64的字符串
  • name参数:使图片使用图片自定义的名称, [hash:10] 为hash 码截取前10位,最大位数可以填32位,因为生成的hash码只有32位。

注意:

  • 当使用url-loader 不添加任何参数时,默认图片将转为 base64 格式的字符串。
  • 在使用name参数时,如果两个图片的名字相同内容不同的照片同时调用,后加载的图片会先覆盖先加载的图片,通过加上[hash:10] 来区分两张图片,防止图片覆盖。

你可能感兴趣的:(JavaScript)