WSL下Ubuntu 20.04.5运行Node.js提示模块找不到求助
解决WSL Ubuntu中Node无法找到
stream/promises及依赖安装错误的问题 问题根源
stream/promises是Node.js v15.0.0才正式内置的模块,当前使用的Node v10.19.0不支持该API,这是运行app.js报错的核心原因。- 执行
node install报错是因为命令误用:安装项目依赖的正确命令是npm install,而非node install。
分步解决方法
1. 升级Node.js版本(推荐)
Ubuntu官方源提供的Node版本偏旧,建议通过NodeSource源安装新版Node(以v20 LTS为例):
- 卸载当前系统自带的Node和npm:
sudo apt remove --purge nodejs npm sudo apt autoremove sudo rm -rf /usr/bin/node /usr/bin/npm - 配置NodeSource源:
sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg sudo mkdir -p /etc/apt/keyrings curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_MAJOR=20 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list - 安装新版Node.js:
sudo apt-get update sudo apt-get install -y nodejs - 验证版本:
node -v # 应显示v20.x.x npm -v # 应显示v10.x.x
2. 临时兼容方案(不升级Node)
若暂时无法升级Node,可安装兼容的polyfill包:
npm install stream-promise --save
修改/mnt/c/Users/.../group-project-1-group-6-15064/lib/weatherHandler.js中的引用:
将require('stream/promises')替换为require('stream-promise')
3. 修复依赖安装命令
执行以下命令安装项目依赖:
npm install
该命令会自动读取当前目录的package.json并安装所有声明的依赖。
额外优化建议
- 避免在WSL中直接操作Windows文件系统(
/mnt/c/...),文件权限和性能问题可能引发异常,建议将项目复制到Ubuntu家目录(~/)下运行。 - 回退Ubuntu版本后,清理npm缓存避免残留问题:
npm cache clean --force
内容的提问来源于stack exchange,提问作者EpoDogma
相关产品推荐
相关产品推荐

