Today we’re going to learn how to import and use our .mp3 files with Next and React.

When we try to import a .mp3 file, we get this error:
./src/assets/sounds/ .mp3 Module parse failed: Unexpected character '' (1:3) You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders (Source code omitted for this binary file) Import trace for requested module: ./src/assets/sounds/ .mp3 ./src/util/Sound.tsx ./src/components/widgets/perfil/Creditos.tsx ./src/pages/dashboard/[path].tsx
To fix it, we need to install file-loader:
npm i url-loader --save
And configure it inside our module.exports
/** @type {import('next').NextConfig} */
const nextConfig = {
//distDir: 'build'
webpack(config, options) {
config.module.rules.push({
test: /\.mp3$/,
use: {
loader: "url-loader",
},
});
return config;
},
};
export default nextConfig;
And to prevent TypeScript from causing issues with *.mp3 import, add the following code inside declarations.d.ts (if you don’t have it, create it)
declare module "*.mp3" {
const src: string;
export default src;
}
And import it inside tsconfig.json along with the rest of includes.
{
"include": ["declarations.d.ts"]
}
