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

Nuxt 2中使用require引入视频资源触发lstat函数不存在报错

解决Nuxt 2 + Webpack 5中加载视频资源报context.outputFileSystem.lstat is not a function的问题

问题根源

Nuxt 2对Webpack 5的兼容存在细节冲突,你之前配置的file-loader和Webpack 5内置的Asset Modules资源处理机制冲突,导致输出文件系统的方法调用异常,即使全新项目也会触发这个问题。

解决方案

1. 替换file-loader为Webpack 5原生Asset Modules

Webpack 5已经内置了资源处理能力,无需再安装file-loader,直接用原生规则配置即可:
修改nuxt.config.js的webpack配置:

export default {
  webpack5: true,
  webpack: {
    module: {
      rules: [
        {
          test: /\.(mp4|webm|ogg)$/,
          type: 'asset/resource',
          generator: {
            filename: 'videos/[name].[hash][ext]' // 自定义输出路径和文件名规则
          }
        }
      ]
    }
  }
}

2. 调整视频资源的引用方式

  • 在<video>标签中直接引用:不用require,直接用相对路径(支持@别名)
<video src="@/assets/videos/your-video.mp4" controls></video>
  • 在JS中动态加载:用import()替代require()(异步加载更适配Webpack 5的模块处理)
async createVideo() {
  const videoAsset = await import('@/assets/videos/your-video.mp4')
  const videoEl = document.createElement('video')
  videoEl.src = videoAsset.default
  // 后续操作...
}

3. 清理缓存并重启项目

删除项目根目录下的.nuxt文件夹、node_modules和package-lock.json(或yarn.lock),然后重新安装依赖并启动服务:

rm -rf .nuxt node_modules package-lock.json
npm install
npm run dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:12:03