部署Nest.js至Digital Ocean App Platform遇MODULE_NOT_FOUND错误求助
解决Nest.js部署至Digital Ocean App Platform时的MODULE_NOT_FOUND错误
针对你遇到的Cannot find module '/workspace/dist/main'错误,以下是几个实际可行的排查和解决步骤:
检查构建脚本与执行状态
确认package.json中的build命令是nest build——这是Nest.js默认的编译命令,会将产物输出到dist目录。然后查看Digital Ocean的构建日志,确保npm run build步骤被正确执行且没有报错。如果构建步骤跳过或失败,自然不会生成dist目录。修正启动命令的路径
不要使用绝对路径,直接用相对路径即可。正确的start:prod命令应该是:"scripts": { "build": "nest build", "start:prod": "node dist/main" }因为Digital Ocean执行启动命令时的工作目录就是你的项目根目录(
/workspace),相对路径dist/main会被正确解析。确认项目根目录配置
如果你的Nest.js项目是在仓库的子目录中(比如monorepo结构),需要在Digital Ocean App Platform的应用设置里,找到"Root Directory"选项,设置为你的项目所在的子目录路径。否则DO会在根仓库目录下寻找dist文件夹,自然找不到。检查.gitignore配置
确保.gitignore中没有添加dist/规则,或者即使添加了,也要保证DO的构建流程中执行了npm run build。如果dist被git忽略且构建步骤没生成,就会出现找不到文件的情况。查看构建日志细节
进入DO应用的"Builds"标签页,仔细查看每一步的日志输出:- 确认
npm install是否成功安装了所有依赖(包括@nestjs/cli,否则nest build无法执行) - 确认
npm run build执行后,是否有生成dist目录的日志提示 - 确认构建完成后,
/workspace目录下确实存在dist文件夹
- 确认
内容的提问来源于stack exchange,提问作者Graham Morby
相关产品推荐
相关产品推荐

