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

React库Webpack配置externals后导入出现「模块未找到」错误

问题原因及解决方法

问题出在Webpack的externals配置写法错误。当前配置中,你把react和react-dom映射为react_and_react_dom.React、react_and_react_dom.ReactDOM这种带属性的字符串,Webpack会将其当作模块名称去解析,而非浏览器全局对象的属性访问路径,所以编译时会报错找不到对应的模块。

正确的配置需要明确告知Webpack,在不同环境下如何获取外部依赖:对于浏览器环境(全局变量),要指定嵌套的全局对象路径;对于CommonJS/AMD等模块环境,使用标准的模块名。修改后的externals配置如下:

externals: {
  'react': {
    root: ['react_and_react_dom', 'React'], // 浏览器环境:window.react_and_react_dom.React
    commonjs: 'react', // CommonJS环境:require('react')
    commonjs2: 'react', // CommonJS2环境
    amd: 'react' // AMD环境
  },
  'react-dom': {
    root: ['react_and_react_dom', 'ReactDOM'], // 浏览器环境:window.react_and_react_dom.ReactDOM
    commonjs: 'react-dom',
    commonjs2: 'react-dom',
    amd: 'react-dom'
  }
}

如果你的库只需要适配浏览器UMD环境,也可以简化为数组形式的字符串:

externals: {
  'react': ['react_and_react_dom', 'React'],
  'react-dom': ['react_and_react_dom', 'ReactDOM']
}

这样Webpack就能正确识别,在浏览器中从window.react_and_react_dom上获取React和ReactDOM,同时在其他模块环境下正常解析对应的依赖包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 01:22:39