Docker+WSL环境下Laravel Breeze安装后npm install报EISDIR错误求助
npm install时EISDIR错误解决 问题描述
在Docker Desktop(WSL2后端)环境下开发Laravel/Inertia应用,按照官方文档安装Laravel Breeze Starterkit,通过sail artisan breeze:install vue配置Vue前端后,执行npm install时出现以下错误:
npm ERR! code EISDIR
npm ERR! syscall lstat
npm ERR! path \wsl$\Ubuntu-20.04\home\magostoni\mycode\lv-vue-laracast\node_modules.bin\acorn
npm ERR! errno -4068
npm ERR! EISDIR: illegal operation on a directory, lstat '\wsl$\Ubuntu-20.04\home\magostoni\mycode\lv-vue-laracast\node_modules.bin\acorn'npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Matteo\AppData\Local\npm-cache_logs\2022-10-20T13_19_40_452Z-debug-0.log
使用的NPM版本为8.19.2。
解决步骤
清理残留文件与缓存
- 删除项目根目录下的
node_modules文件夹、package-lock.json文件 - 执行命令强制清理npm缓存:
npm cache clean --force
- 删除项目根目录下的
切换到WSL终端执行命令
不要在Windows终端直接访问WSL路径执行npm命令,打开Ubuntu 20.04的WSL终端,cd到项目目录后再运行npm install。Windows文件系统与WSL文件系统的交叉访问容易触发此类文件权限/类型识别错误。降级NPM版本
8.19.2版本存在部分兼容性问题,可降级到稳定的8.18.x版本:npm install -g npm@8.18.2降级完成后重新执行
npm install。检查Sail环境配置(可选)
如果是通过Sail容器运行前端构建,可进入Sail容器内部执行依赖安装:sail npm install确保容器内的npm环境与项目依赖兼容。
内容的提问来源于stack exchange,提问作者agodoo

