You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Next JS中正确展示assets文件夹下的本地视频?

本地视频引入Module parse failed报错解决方案

该报错本质是项目构建工具未配置视频类静态资源的解析规则,无法识别.mp4格式文件导致,和引入语法无关,可按你使用的构建工具对应配置解决:

Webpack(含vue-cli、create-react-app等基于webpack封装的脚手架)

webpack4版本

  • 先安装file-loader依赖:
    npm install file-loader --save-dev
  • 在webpack配置文件的module.rules数组中新增如下规则(vue-cli项目写在vue.config.js的configureWebpack字段中,create-react-app项目需eject后修改webpack配置或使用customize-cra覆盖规则):
module.exports = {
  module: {
    rules: [
      {
        test: /\.(mp4|webm|ogg|mp3|wav)$/,
        use: {
          loader: 'file-loader',
          options: {
            name: '[name].[hash:8].[ext]',
            outputPath: 'assets/media/'
          }
        }
      }
    ]
  }
}

webpack5版本

无需安装额外loader,直接使用内置的Asset Modules配置即可,在module.rules中新增:

module.exports = {
  module: {
    rules: [
      {
        test: /\.(mp4|webm|ogg|mp3|wav)$/,
        type: 'asset/resource',
        generator: {
          filename: 'assets/media/[name].[hash:8][ext]'
        }
      }
    ]
  }
}

Vite项目

Vite默认支持mp4等媒体资源解析,如出现该报错,检查vite.config.js中是否覆盖了assetsInclude配置,补充mp4格式即可:

import { defineConfig } from 'vite'
export default defineConfig({
  assetsInclude: ['**/*.mp4']
})

配置完成后的引入方式

  • CommonJS require方式(仅webpack支持):
    <video src={require("../assets/videos/video.mp4").default} controls />
  • ES Module import方式(全场景通用):
    先在文件顶部引入资源:
    import videoSrc from "../assets/videos/video.mp4"
    再在标签中使用:
    <video src={videoSrc} controls />

内容的提问来源于stack exchange,提问作者Saif Essam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:09:02