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

Gitlab Pipeline报错:无法找到模块'../Models/User'求助

GitLab Pipeline 测试时找不到模块的排查与解决

问题重现

本地VS Code中运行所有测试均正常,但GitLab Pipeline执行npm run build-test-server时抛出模块找不到的错误:

$ npm run build-test-server
> stava@1.0.0 build-test-server
> cd server && npm install && npm test
added 640 packages, and audited 641 packages in 18s
63 packages are looking for funding
  run `npm fund` for details
found 0 vulnerabilities
> stava_server@1.0.0 test
> node_modules/mocha/bin/mocha.js tests/api.js --exit --timeout 5000 && jest --testPathPattern=server/tests --runInBand --detectOpenHandles
Tue, 28 Feb 2023 22:25:52 GMT express-session deprecated req.secret; provide secret option at index.js:50:3
Error: Cannot find module '../Models/User'
Require stack:
- /builds/tdt4140-2023/landsby-1/gruppe-10/stava/server/Controllers/userController.js
- /builds/tdt4140-2023/landsby-1/gruppe-10/stava/server/Routers/userRouter.js
- /builds/tdt4140-2023/landsby-1/gruppe-10/stava/server/index.js
- /builds/tdt4140-2023/landsby-1/gruppe-10/stava/server/tests/api.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1090:15)
    at Module._load (node:internal/modules/cjs/loader:934:27)

排查与解决方法

  • 检查文件名大小写一致性
    本地Windows/macOS系统默认大小写不敏感,但GitLab Runner使用的Linux系统是大小写严格区分的。确认server/Controllers/userController.js中引用的../Models/User,其对应的实际文件路径、文件名大小写完全匹配(比如是否实际是models/user.js),修正引用路径或文件名的大小写问题。

  • 确认文件已被Git追踪
    检查项目根目录的.gitignore文件,确认server/Models目录或User.js文件未被排除。如果该文件未被Git追踪,执行git add server/Models/User.js并提交到仓库,确保GitLab Runner拉取代码时能获取到该文件。

  • 验证CI工作目录
    在CI脚本中添加pwd命令查看当前工作目录,确认执行cd server前的路径是项目根目录,和本地执行环境一致。如果工作目录不符,调整CI脚本中的路径切换逻辑。

  • 清理CI的npm缓存
    缓存异常可能导致依赖或文件加载问题,在CI脚本的npm install前添加缓存清理步骤:

    npm cache clean --force
    

内容的提问来源于stack exchange,提问作者Christian Veiby

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:57:26