使用Git Bash运行ng serve时出现找不到模块错误求助
ng s提示找不到@angular/cli模块的问题 嘿,我之前也碰到过这种莫名其妙的情况——明明用了几千次的命令突然罢工,别慌,咱们一步步排查解决:
这个错误的核心问题很明显:Git Bash居然跑到Git安装目录的node_modules里找@angular/cli,而不是你项目本地或者全局安装的正常位置,大概率是环境变量或Shell的路径识别出了乱子。
试试下面这些方法,按顺序来:
先检查当前Shell的路径指向
在Git Bash里输入which node和which ng,看看输出的路径是不是你平时用的Node和Angular CLI的位置。如果which ng指向了Git目录下的路径,那肯定是路径优先级出了问题。清理缓存并重装项目依赖
先全局清理npm缓存:npm cache clean --force,然后进入你的项目目录,删除node_modules文件夹和package-lock.json(如果你用yarn就删yarn.lock),再重新执行npm install。重新全局安装Angular CLI
有时候全局CLI可能悄悄损坏了,执行npm uninstall -g @angular/cli彻底卸载,再重新安装:npm install -g @angular/cli。安装完后输入ng --version确认CLI能正常运行。调整Git Bash的环境变量优先级
打开Git Bash输入echo $PATH,看看你的Node安装目录(比如C:\Program Files\nodejs)是不是排在Git目录的前面。如果Git路径在前,会导致它优先找自己目录下的node_modules。你可以在系统环境变量里把Node的路径往上调,或者在Git Bash的配置文件(比如~/.bashrc)里手动添加:export PATH="/c/Program Files/nodejs:$PATH"保存后重启Git Bash试试。
临时绕开全局路径问题
如果上面的方法都没效果,可以直接调用项目本地的CLI,在项目目录里执行npx ng s,npx会自动识别并使用项目本地安装的Angular CLI,绕开全局路径的坑。
另外提个小细节:有时候Git Bash会缓存路径信息,重启一下Git Bash甚至电脑,说不定就能解决这种毫无征兆的路径识别bug。
内容的提问来源于stack exchange,提问作者1px_solid_black

