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

NextJS项目导入PDF文件出现Module parse failed错误如何解决?

解决方案

报错原因

Module parse failed: Unexpected token (1:0) You may need an appropriate loader to handle this file type

该报错是因为Webpack默认仅支持处理JS、JSON类文件,没有配置PDF二进制文件的解析规则,无法识别你导入的PDF资源,需要新增对应资源处理规则即可解决。


方案1:Webpack 5.x 版本配置(无需额外安装依赖)

Webpack 5 内置了资源模块(Asset Modules),直接修改项目的webpack.config.js配置文件的module.rules数组即可:

// webpack.config.js
module.exports = {
  // 其他原有配置保持不变
  module: {
    rules: [
      // 其他已有loader规则保持不变
      {
        test: /\.pdf$/,
        type: 'asset/resource',
        generator: {
          // 可选配置:自定义打包后PDF文件的输出路径和命名规则
          filename: 'pdf/[name].[hash][ext]'
        }
      }
    ]
  }
}

配置完成后重启项目,原有import file from '../public/pdf/front.pdf'语句即可正常执行,导入的file变量就是打包后的PDF文件访问路径。


方案2:Webpack 4.x 及更低版本配置

需要先安装file-loader依赖:

npm install file-loader --save-dev
# 或使用yarn
yarn add file-loader -D

再修改webpack.config.js的module.rules配置:

// webpack.config.js
module.exports = {
  // 其他原有配置保持不变
  module: {
    rules: [
      // 其他已有loader规则保持不变
      {
        test: /\.pdf$/,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: 'pdf/[name].[hash].[ext]'
            }
          }
        ]
      }
    ]
  }
}

框架封装场景补充

如果你使用Vue CLI、Create React App这类封装了Webpack配置的框架,不需要直接修改webpack.config.js,按框架对应的扩展配置方式添加上述PDF规则即可:

  • Vue CLI:在vue.config.js的configureWebpack或chainWebpack字段中添加对应规则
  • Create React App:可以执行npm run eject暴露内置配置后修改,也可以用react-app-rewired等工具扩展配置

内容的提问来源于stack exchange,提问作者Jonathan Jeshua Laniba

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 00:45:04