You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境运行Express报MODULE_NOT_FOUND错误,Windows下正常

Ubuntu下Express项目模块找不到的解决方案

针对你遇到的「Windows正常运行、Ubuntu报错找不到./src/controllers/auth/passport模块」问题,以下是排查和解决方向:

1. 检查文件名大小写

Linux文件系统区分大小写,Windows则不。如果代码中引用的路径是./src/controllers/auth/passport,但实际文件/文件夹名是大写(比如Passport.js、Auth),就会导致找不到模块。

  • 操作:进入对应目录/var/www/PTI/Projeto/code/server/src/controllers/auth/,用ls命令查看文件名,确保和require路径的大小写完全一致。

2. 确认文件权限

Ubuntu下运行Node的用户可能没有目标文件的读取权限。

  • 操作:
    1. 查看文件权限:ls -l /var/www/PTI/Projeto/code/server/src/controllers/auth/passport.js(替换为实际文件名)
    2. 若权限不足,赋予读取权限:sudo chmod +r /var/www/PTI/Projeto/code/server/src/controllers/auth/passport.js
    3. 也可递归设置整个src文件夹权限:sudo chmod -R 755 /var/www/PTI/Projeto/code/server/src/

3. 验证相对路径基准

虽然你说main.js和src同目录,但需确认Node.js解析路径的基准是否正确:

  • 操作:
    1. 找到main.js的绝对路径:find /var/www/PTI/Projeto -name main.js
    2. 进入该目录,执行ls src,确认src文件夹确实存在
    3. 若server.js是入口文件,且main.js是被server.js引入的,main.js中的./src是相对于自身所在目录,而非server.js的目录,这点无需调整,只需确保main.js和src同目录即可。

4. 重置依赖缓存

Node.js或npm的缓存可能导致模块解析异常,重置依赖后重试:

  • 操作:
    1. 进入项目根目录:cd /var/www/PTI/Projeto/code/server/
    2. 删除依赖和锁文件:rm -rf node_modules package-lock.json
    3. 重新安装依赖:npm install
    4. 重启项目

内容的提问来源于stack exchange,提问作者Bernardo Rebelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:42:44