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

Angular项目使用pdfjs-dist时出现模块解析失败错误

Angular执行ng serve时pdfjs-dist出现Module parse failed错误的解决方法

问题描述

执行ng serve时触发以下错误:

Error: ./node_modules/pdfjs-dist/build/pdf.js 1413:9
Module parse failed: Unexpected character '#' (1413:9)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file.

当前使用的依赖版本:

"@types/pdfjs-dist": "2.1.6",
    "pdfjs-dist": "2.16.105",
    "webpack": "4.30.0",
    "tslib": "^2.0.1"

解决方法

方法1:降级pdfjs-dist适配webpack 4

webpack 4对ES私有字段(代码中#开头的语法)支持不足,你当前用的pdfjs-dist版本包含这类语法,导致解析失败。建议降级到兼容webpack 4的版本:

npm install pdfjs-dist@2.10.377 @types/pdfjs-dist@2.1.7 --save

安装完成后重新执行ng serve即可。

方法2:用babel-loader处理pdfjs-dist文件

如果不想降级版本,可通过扩展Angular的webpack配置,添加babel转译来处理新语法:

  1. 安装所需依赖:
    npm install @angular-builders/custom-webpack babel-loader @babel/core @babel/preset-env --save-dev
    
  2. 在项目根目录创建custom-webpack.config.js:
    module.exports = {
      module: {
        rules: [
          {
            test: /pdf\.js$/,
            include: /node_modules\/pdfjs-dist\/build/,
            use: {
              loader: 'babel-loader',
              options: {
                presets: [['@babel/preset-env', { targets: "defaults" }]]
              }
            }
          }
        ]
      }
    };
    
  3. 修改angular.json中的构建配置,替换builder并指定自定义webpack文件:
    "architect": {
      "build": {
        "builder": "@angular-builders/custom-webpack:browser",
        "options": {
          "customWebpackConfig": {
            "path": "./custom-webpack.config.js"
          },
          // 保留原有其他配置
        }
      },
      "serve": {
        "builder": "@angular-builders/custom-webpack:dev-server",
        // 保留原有其他配置
      }
    }
    
  4. 重新运行ng serve。

方法3:使用pdfjs-dist的legacy版本

pdfjs-dist官方提供了兼容旧版打包工具的legacy构建文件,直接替换原有引入路径即可:

import * as pdfjsLib from 'pdfjs-dist/legacy/build/pdf';
import 'pdfjs-dist/legacy/web/pdf_viewer';

无需修改webpack配置,直接使用该版本就能避开语法解析问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 17:30:31