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

使用Webpack的dependOn时出现ReferenceError问题求助

问题原因及解决办法

你误解了dependOn的作用——它只是用来拆分代码,把react、react-dom打包到独立的reactVendors chunk里,让home入口共享这个公共依赖,避免重复打包、优化缓存,但并不会自动把这些库挂载成全局变量,也不会省略模块引入的步骤。所以你删掉import后,代码里的ReactDOM自然找不到定义,就会报错。

给你两个可行的解决办法:

办法一:恢复import声明(推荐)

这是符合ES模块规范的标准做法,dependOn依然能发挥代码拆分的作用,只是模块引入不能省略:

修改index.js:

import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(<p>Hello</p>, document.getElementById('demo'));

办法二:用ProvidePlugin自动注入全局变量

如果确实不想写import,可以通过Webpack的ProvidePlugin把react和react-dom自动注入到模块作用域,让代码里直接能用:

修改webpack.config.js:

const path = require('path');
const webpack = require('webpack');

module.exports = {
    entry: {
        reactVendors: ['react', 'react-dom'],
        home: { import: path.join(__dirname, 'src', 'index.js'), dependOn: 'reactVendors' }
    },
    plugins: [
        new webpack.ProvidePlugin({
            React: 'react',
            ReactDOM: 'react-dom'
        })
    ]
}

此时你的index.js不用写import也能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:59:54