繁体   English   中英

使用CLI package.json脚本时生产部署失败

[英]Production deployment failing when using CLI package.json scripts

我已经通过CLI工具(v6.3.0)创建了一个基本应用程序,并且已经达到我准备推送到生产服务器并遇到问题的程度。

我使用Shipit部署(可能不相关),此过程的一部分是安装npm依赖项(带有标志--production )。

一切都顺利部署,直到我的部署运行最终命令npm run start:prod (在节点进程上启动Nest应用程序)。 其中执行以下步骤:

  1. 删除dist目录的内容rimraf dist && npm run build ;
  2. 尝试重建dist目录的内容tsc -p tsconfig.build.json ;
  3. 运行node dist/main.js ;

所有这一切的问题是,我认为提供tsc命令的TypeScript包是devDependency而不是在npm安装期间使用--production标志安装的依赖项。

这是一个错误,还是我完全npm run start:prodnpm run start:prod命令的要点。 我感谢全局安装TypeScript包可能会解决问题,虽然我不确定这是出于意图还是假设?

如果将NestJS部署到生产环境中,您是否正在使用其他策略?

在服务器端应用程序中, dependenciesdevDependencies之间的区别并不重要,因为您没有提供依赖项,因此应用程序的大小并不重要。

但是,当您部署到云时,您可能希望节省空间。 编译后运行应用程序不需要TypeScript。 当您只想重新启动应用程序时,无需重新编译应用程序。 那么,你可以做什么呢?

删除prestart:prod脚本。

部署例程:

  1. 使用npm install安装所有依赖项
  2. 运行npm run build
  3. 使用npm prune --production修剪你的dev依赖项
  4. 运行npm run start:prod

这几乎是我部署到heroku时发生的事情。

或者,你当然可以声明typescriptdependencies ,而不是devDependencies

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM