Windows10运行Svelte项目执行npm run dev提示node:not found问题求助
问题原因分析
报错核心是npm调用了不匹配的脚本执行环境:报错信息中同时出现Windows路径C:\...、WSL挂载路径/mnt/c/以及spawn bash ENOENT提示,说明你Windows本机安装的npm被配置为使用bash作为脚本执行shell,要么是你安装了WSL但WSL环境内没有安装Node,要么是依赖安装环境和执行环境不匹配。
排查解决步骤
- 第一步:检查npm的脚本shell配置
执行命令npm config get script-shell,如果返回结果是bash、wsl.exe或者其他非Windows默认shell路径,说明配置异常。 - 第二步:修复npm shell配置
执行命令npm config delete script-shell恢复npm默认脚本执行配置,Windows环境下npm会默认使用cmd执行脚本。
如果你需要手动指定,也可以执行:npm config set script-shell "C:\\Windows\\system32\\cmd.exe"指定cmd作为执行shell,或是指定PowerShell的对应路径。 - 第三步:清理异常依赖
如果你之前在WSL环境下执行过npm install安装依赖,跨环境调用会出现执行文件不兼容的问题,直接删除项目根目录下的node_modules文件夹和package-lock.json文件,重新执行npm install安装依赖。 - 第四步:验证修复结果
重新在项目根目录执行npm run dev,即可正常启动Svelte开发服务。
如果你后续需要在WSL环境中运行项目,请直接在WSL终端内执行所有操作,同时在WSL环境中安装对应版本的Node、npm,不要跨环境混用Windows和WSL的Node、依赖包。
内容的提问来源于stack exchange,提问作者Sanjan Das
相关产品推荐
相关产品推荐

