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

使用React PDF Viewer与Webpack构建时遇语法错误求助

解决React PDF Viewer + Webpack构建时的TypeScript语法错误

问题根源

你遇到的props:语法属于TypeScript类型注解,当前Webpack配置排除了对node_modules目录的Babel转译,导致react-pdf-viewer包中未转译的TypeScript代码无法被处理,最终引发构建失败。同时你的Babel预设缺少TypeScript支持,无法解析这类语法。

解决方案

1. 安装Babel TypeScript预设

执行命令安装必要依赖:

npm install --save-dev @babel/preset-typescript

2. 更新Babel配置

修改你的.babelrc,添加TypeScript预设:

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react",
    "@babel/preset-typescript"
  ]
}

3. 调整Webpack转译范围

修改Webpack配置中module.rules里的JS/JSX规则,让Babel处理react-pdf-viewer相关模块(仅排除该包外的其他node_modules内容):

{
    test: /\.js(x?)$/,
    // 正则含义:排除node_modules,但不排除@react-pdf-viewer相关子包
    exclude: /node_modules(?!\/@react-pdf-viewer)/,
    use: 'babel-loader',
}

注:若使用的是无@前缀的旧版react-pdf-viewer,请将正则改为/node_modules(?!\/react-pdf-viewer)/

4. 可选:项目TypeScript支持(按需添加)

如果你的项目本身需要TypeScript,可额外安装相关依赖:

npm install --save-dev typescript @types/react @types/react-dom

并在项目根目录创建基础tsconfig.json:

{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "jsx": "react-jsx",
    "strict": true,
    "moduleResolution": "node",
    "esModuleInterop": true
  },
  "include": ["src/**/*"]
}

验证

重新执行构建命令,Babel会转译react-pdf-viewer中的TypeScript语法,props:类型注解会被移除,构建即可正常完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 11:05:17