Windows环境下DDEV WSL2项目执行npm install失败求助
解决WSL2+DDEV环境中npm install因esbuild UNC路径报错的问题
问题根源
报错核心是DDEV终端错误调用了Windows系统的node/npm,而非容器内置工具。Windows的CMD.exe不支持\\wsl.localhost开头的UNC路径,导致esbuild的安装脚本install.js被错误定位到Windows系统目录(C:\Windows),最终触发MODULE_NOT_FOUND错误;同时跨文件系统的工具调用也导致npm安装耗时剧增。
修复步骤
1. 强制使用DDEV容器内的Node.js/npm
- 进入DDEV容器后,先检查当前node/npm的执行路径:
正常输出应为容器内路径(如which node which npm/usr/local/bin/node),而非Windows相关路径。 - 若检测到调用Windows工具,修改DDEV配置文件
.ddev/config.yaml,提升容器内工具优先级:web_environment: - PATH=/usr/local/bin:$PATH - 重启DDEV容器生效:
ddev restart
2. 验证项目路径映射正确性
- 确认项目根目录位于WSL2原生文件系统(
/home/john/projects),而非Windows挂载目录(如/mnt/c)。 - 执行
ddev describe查看Project root字段,确保显示为WSL内的路径。
3. 直接指定容器内npm执行安装
进入DDEV容器的主题目录后,使用容器内的npm路径执行安装:
cd wp-content/themes/project-theme /usr/local/bin/npm install
4. esbuild专属临时修复(若上述方法无效)
- 安装前设置环境变量,强制esbuild使用容器内的二进制文件:
npm_config_esbuild_binary_path=/usr/local/bin/esbuild npm install - 或在项目
package.json中添加配置:"config": { "esbuild_binary_path": "/usr/local/bin/esbuild" }
内容的提问来源于stack exchange,提问作者John Bowler
相关产品推荐
相关产品推荐

