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

React项目执行npm start编译失败:htmlparser2模块解析错误

React项目npm start编译失败(htmlparser2模块解析错误)

报错详情

/node_modules/htmlparser2/lib/esm/index.js 62:9处模块解析失败:意外的标记(62:9)。文件已通过以下加载器处理:./node_modules/babel-loader/lib/index.js,可能需要额外加载器来处理这些加载器的结果。

相关代码片段:

return getFeed(parseDOM(feed, options)); 
}

export * as DomUtils from "domutils"; 
// Old name for DomHandler
export { DomHandler as DefaultHandler };

问题原因

该错误源于htmlparser2新版本使用了项目Babel/Webpack配置未支持的ES模块语法(如export * as),而默认情况下Webpack不会转译node_modules目录下的依赖包,导致编译时无法解析这类语法。

解决方案

1. 让Babel转译htmlparser2及依赖模块

修改项目的Babel配置文件(babel.config.js或.babelrc),将htmlparser2和它的依赖domutils纳入转译范围:

// babel.config.js示例
const path = require('path');

module.exports = {
  presets: ['react-app'], // 保留原有presets配置
  include: [
    path.resolve(__dirname, 'src'),
    /htmlparser2/,
    /domutils/
  ]
};

2. 调整Webpack配置(适用于已eject的Create React App项目)

若项目通过Create React App创建且已执行npm run eject,修改webpack.config.js中的babel-loader规则,添加目标模块:

{
  test: /\.(js|mjs|jsx|ts|tsx)$/,
  include: [
    paths.appSrc,
    /node_modules\/htmlparser2/,
    /node_modules\/domutils/
  ],
  loader: require.resolve('babel-loader'),
  options: {
    // 保留原有options配置
  },
}

3. 降级htmlparser2到兼容版本

若上述方法无效,可尝试降级到语法更兼容的旧版本:

npm uninstall htmlparser2
npm install htmlparser2@5.0.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 09:35:33