javascript - Webpack打包图片

查看:198
本文介绍了javascript - Webpack打包图片的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

音频文件执行webpack后没有打包到assets文件夹内~
而且在JS文件内使用

let musicFil = require('../music/yinyue.mp3');
<audio ref='musicBox'src={musicFil} controls="controls" loop='loop'>
       Your browser does not support the audio element.
</audio>

后,播放器就变灰了。。控制台中audio标签的src是

<audio   src="data:audio/mpeg;base64,bW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyArICJlNzMzMmI4ZThiYTQ5ZDg2NTMzNzdkZjM2YmYyN2MwMS5tcDMiOw==" controls="" loop="">Your browser does not support the audio element.</audio>

成base64编码了?不知道为什么。。囧

但是src='./music/yinyue.mp3'的路径却有效(图片的话两种路径都可以显示出图片)
我的webpack loader的配置如下:

  {
    test: /\.(png|jpg|gif|woff|woff2|mp3)$/,
    loader: 'url-loader?limit:8192'
  },
  {
    test: /\.(mp4|ogg|svg|mp3)$/,
    loader: 'file-loader!'
  }
  module.exports = {
  srcPath: srcPath,
  publicPath: '/assets/',
  port: dfltPort,
  getDefaultModules: getDefaultModules
  };

(打包的时候由于图片路径的原因,publicPath我用的 'assets/';用本地服务器测试的时候路径用的'/asset/')

请问为什么mp3文件没办法打包到指定文件夹呢?为什么用require来指定路径时,图片可以但是mp3音频文件就不行了呢?。。

解决方案

因为 url-loader 会把文件 base64 编码后插入到指定位置。你去掉 url-loader 中的 .mp3 后缀,不让这个 loader 处理音频文件即可。

这篇关于javascript - Webpack打包图片的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆