部署NestJS应用至Firebase Functions时出现nest: not found错误
解决NestJS部署Firebase Functions时「nest: not found」报错
问题原因
你的build脚本使用nest build命令,但@nestjs/cli被放在devDependencies中。Firebase Functions部署时仅会安装dependencies内的依赖包,不会安装开发依赖,导致部署过程中找不到nest命令。
解决方案
提供两种可行方案,任选其一即可:
方案1:将@nestjs/cli移至dependencies
修改package.json,把devDependencies下的@nestjs/cli条目移到dependencies中:
"dependencies": { // 保留原有所有依赖... "@nestjs/cli": "^10.3.0" }, "devDependencies": { // 删除原有的@nestjs/cli条目 }
这样部署时Firebase会安装@nestjs/cli,就能正常执行nest build命令。
方案2:直接使用TypeScript编译器构建
不需要依赖@nestjs/cli,直接用tsc命令编译(NestJS初始化时已自动生成正确的tsconfig.json):
修改package.json中的build脚本:
"scripts": { // 保留原有其他脚本... "build": "tsc", // 保留原有其他脚本... }
同时确保tsconfig.json的outDir设置为dist(和你当前main字段指定的dist/main.js对应)。
额外注意事项
- 你的
postinstall脚本设置为npm run build,部署时Firebase会自动执行该命令,上述两种方案都能兼容这个配置。 - 修改后先在本地执行
npm run build验证构建是否正常,再执行firebase deploy --only functions部署。
内容的提问来源于stack exchange,提问作者İlker
相关产品推荐
相关产品推荐

