在Render部署TypeScript编写的Node.js服务器时遇模块找不到错误
TypeScript Node.js 服务器部署到Render平台失败的解决建议
问题背景
尝试将TypeScript编写的Node.js服务器部署到Render平台,启动时提示找不到build/server.js文件。
相关信息
package.json 脚本
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "ts-node-dev --respawn --transpile-only server.ts", "start": "node build/server.js", "build": "tsc" },
目录结构
项目根目录下包含:server.ts、package.json、tsconfig.json等核心文件。
Render平台配置
- 构建命令:
npm install - 启动命令:
npm start
错误日志
node:internal/modules/cjs/loader:1137 throw err; ^ Error: Cannot find module '/opt/render/project/src/build/server.js' at Module._resolveFilename (node:internal/modules/cjs/loader:1134:15) at Module._load (node:internal/modules/cjs/loader:975:27) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12) at node:internal/main/run_main_module:28:49 { code: 'MODULE_NOT_FOUND', requireStack: [] }
解决建议
- 更新Render构建命令:当前仅执行
npm install未编译TypeScript代码,将构建命令改为npm install && npm run build,确保部署时自动生成build目录及产物。 - 校验tsconfig.json配置:确认
compilerOptions中的outDir设置为./build,同时include数组包含server.ts,保证编译输出路径和入口文件正确。示例配置:{ "compilerOptions": { "outDir": "./build", "target": "ES2020", "module": "commonjs", "strict": true }, "include": ["server.ts"] } - 检查.gitignore规则:不要将
build目录加入.gitignore(更推荐构建阶段编译而非提交产物,但如果已提交需确保规则正确)。 - 确认入口文件位置:保证
server.ts在项目根目录,避免编译时找不到入口导致无输出文件。
内容的提问来源于stack exchange,提问作者seventeen
相关产品推荐
相关产品推荐

