Gatsby运行gatsby develop报Cannot find module 'rimraf'错误
故障根因
执行gatsby develop抛出Cannot find module 'rimraf'错误,本质是当前项目本地依赖安装损坏或缺失:报错链路里的tmp包依赖rimraf,但项目node_modules目录下没有对应可用的依赖文件。
全局安装模块、重装Node无法解决问题,是因为故障点在项目本地依赖目录,和全局运行环境无关;Gatsby starter可正常运行也能印证全局Gatsby、Node环境无配置错误。
解决步骤
按顺序操作,每步完成后执行gatsby develop验证是否恢复:
- 完全清理损坏的依赖文件
进入项目根目录Dot-Matters-Gatsby,执行以下命令::: 删除现有node_modules目录 rd /s /q node_modules :: 删除依赖锁文件,使用yarn/pnpm则对应删除yarn.lock/pnpm-lock.yaml del package-lock.json :: 强制清理npm本地缓存 npm cache clean --force - 修正项目存放路径
从报错栈可见你的项目存放在C:\CREST\Sri Nidhi\github\Dot-Matters-Gatsby,路径中Sri Nidhi包含空格,Windows下部分低版本npm依赖在带空格、中文、特殊符号的路径中安装时会出现文件漏写、路径解析错误,直接将项目移动到无空格、无中文的纯英文路径下,例如C:\code\Dot-Matters-Gatsby。 - 重新安装本地依赖
在项目根目录执行本地安装命令,禁止加-g全局参数:
如果安装过程抛出权限错误,关闭终端后右键选择「以管理员身份运行」重开终端,再执行安装命令。npm install - 手动补装缺失依赖
如果上述操作后仍报相同错误,直接在项目根目录执行命令补装缺失包:npm install rimraf tmp --save - 对齐Node版本
执行node -v查看本地Node版本,和项目其他开发人员的Node版本对齐,大版本不匹配也会导致依赖安装时拉取错误的包版本,触发依赖缺失问题。
内容的提问来源于stack exchange,提问作者Srinidhi Marimuthu
相关产品推荐
相关产品推荐

