Ubuntu 20.04下执行Vite命令遇npm spawn powershell ENOENT错误求助
解决Ubuntu 20.04下运行Vite React项目时npm报错spawn powershell ENOENT的问题
这个错误的核心原因是:Ubuntu作为Linux环境,npm却尝试调用Windows专属的PowerShell程序,系统中不存在该程序,因此抛出找不到文件的错误。以下是针对性的解决思路:
检查并修正package.json中的dev脚本
打开项目根目录下的package.json,查看scripts里的dev命令是否硬编码了PowerShell调用。比如如果是"dev": "powershell vite",直接修改为"dev": "vite"即可。重置npm的默认shell配置
执行以下命令查看当前npm默认使用的shell:npm config get shell如果返回结果包含
powershell,将其改为Ubuntu系统默认的bash或zsh:# 使用bash作为默认shell npm config set shell /bin/bash # 若使用zsh则执行 npm config set shell /bin/zsh排查Vite配置文件中的Windows专属脚本
检查项目中的vite.config.js(或.ts)文件,确认是否有在钩子(如predev、postdev)或插件配置中指定了PowerShell命令,将其替换为Linux兼容的shell命令。重新创建兼容Linux的项目(若新项目初始化即报错)
如果是创建新项目时就出现该问题,可能是使用的模板包含Windows专属配置,重新执行创建命令并明确使用React官方模板:npm create vite@latest my-react-app -- --template react清理缓存并重装依赖
执行以下步骤重置项目依赖环境:npm cache clean --force rm -rf node_modules package-lock.json npm install
内容的提问来源于stack exchange,提问作者someone
相关产品推荐
相关产品推荐

