Nest项目部署的最佳方式

lxf2023-05-05 14:36:01

前言

前一阵子搞了个nest项目,当我开发完一个功能,打算部署到服务器进行测试时,发现它跑不起来,报了一大堆错缺少了很多依赖包。

我几乎找遍了全网的解决方案,他们的答案齐刷刷只有一个:nest在打包时,不会将依赖打包进去,需要在服务器上clone项目,安装依赖。

这个答案不是我想要的,我的项目没有到达devOps的级别,在服务器上安装node_modules太占用资源了,不是我想要的。幸运的是,经过一番研究后,我终于解决了这个问题,本文就跟大家分享下我的实现思路与方案,欢迎各位感兴趣的开发者阅读本文。

场景概述

我们继续用文章“使用NestJS搭建服务端应用”所创建的项目,以此为基础来描述这个问题,我们打开package.json文件,执行里面的build命令。

{
    "scripts": {
      "build": "nest build",
    }
}

一眨眼的功夫,它就打包好了,在你的项目根目录下会多出一个dist文件夹,如下如所示,这就是它所打包出来的文件。

Nest项目部署的最佳方式

紧接着,我们把dist目录上传到服务器,用node来执行其目录下的main.js文件,上传文件至服务器后,我发现整个文件夹竟然只有18KB,我当时惊呆了,心想js这么牛的吗!开发出来的服务端应用包体积居然这么小,同样的功能使用Java实现,打包出来的jar包都50MB起步了!

Nest项目部署的最佳方式

当我在服务器上运行时,我傻眼了,程序报错跑不起来