Webpack构建报错求助:Entry模块未找到问题
听起来你在升级Webpack版本后碰到了个有点棘手的问题——明明项目看起来已经构建完成,但这个入口模块找不到的报错一直冒出来,偏偏devserver还能正常跑。我来给你梳理几个大概率能解决问题的方向:
先盯紧Webpack配置里的entry字段
这个报错最常见的原因就是入口配置指向了目录而非具体文件,或者目标目录里没有Webpack默认识别的入口文件。打开你的生产环境Webpack配置(比如webpack.prod.js),看看entry是不是写成了'./build/'这类路径?Webpack需要明确的入口文件,比如'./src/index.js'。如果确实要从build目录取入口,先确认这个目录下有没有index.js这类默认文件,而且要保证这个文件在Webpack开始构建前就已经存在(比如不是构建过程中才生成的)。排查构建插件的执行顺序
如果你用了类似clean-webpack-plugin这类清理目录的插件,会不会是插件先把build目录删掉了,然后Webpack才去这个目录找入口?这种顺序颠倒肯定会导致找不到文件。你可以调整插件的执行时机,或者干脆把入口指向src目录的源文件,不要依赖还没生成的build目录。验证目标目录的实际状态
打开终端,到项目根目录执行ls /Users/me/files/project/build/,看看这个目录里到底有没有文件。如果是空的,那问题就很明确了——Webpack找不到入口文件。这时候就得回头确认,你的入口应该指向哪里,是不是配置里的路径写错了。对比开发和生产配置的差异
既然devserver运行正常,说明开发环境的入口配置是对的。去对比一下开发和生产环境的Webpack配置,看看entry字段是不是不一样?大概率是生产配置里的入口路径写错了。
如果上面的步骤都试过还没解决,你可以临时把entry改成一个你确定存在的文件(比如./src/index.js),看看报错会不会消失,这样能快速定位是不是入口路径的问题。
内容的提问来源于stack exchange,提问作者natevw

