Node.js+Express+React项目中webpack-dev-middleware模块找不到求助
解决"Cannot find module 'webpack-dev-middleware'"问题的排查方向
我之前也碰到过几乎一模一样的问题!让我来分享几个排查方向和解决办法,应该能帮到你:
检查依赖是否真正安装成功
虽然package.json里已经声明了webpack-dev-middleware,但很可能npm install过程中出现了静默错误,导致依赖没装全。建议:- 删除项目根目录下的
node_modules文件夹和package-lock.json(如果用yarn的话是yarn.lock) - 重新执行
npm install,仔细看终端输出,有没有报错信息(比如网络超时、权限问题)
- 删除项目根目录下的
确认安装命令的执行目录
一定要在package.json所在的项目根目录下运行npm install!如果不小心在子目录执行了命令,依赖会被装到错误的位置,Express自然找不到它。区分全局依赖和本地依赖
webpack-dev-middleware必须是本地依赖(放在package.json的dependencies或devDependencies字段里),全局安装的模块不会被Node的本地模块解析机制识别。检查你的package.json,确保这个包是通过npm install webpack-dev-middleware --save-dev(或--save)安装的,而不是加了-g参数。调整启动命令的写法
你用的DEBUG=express-react:* & npm start在某些终端环境下可能会导致环境变量没有正确传递给npm start进程。试试改成:- Linux/macOS:
DEBUG=express-react:* npm start(去掉&符号,直接在当前进程执行) - Windows:
set DEBUG=express-react:* && npm start
- Linux/macOS:
检查模块引入的拼写
最后再确认一遍app.js里的引入代码,是不是写成了require('webpack-dev-middleware')?有没有拼写错误(比如把连字符写成驼峰webpackDevMiddleware)?这种低级错误很容易被忽略!
内容的提问来源于stack exchange,提问作者LakiGeri
相关产品推荐
相关产品推荐

