前言
前一阵子搞了个nest项目,当我开发完一个功能,打算部署到服务器进行测试时,发现它跑不起来,报了一大堆错缺少了很多依赖包。
我几乎找遍了全网的解决方案,他们的答案齐刷刷只有一个:nest在打包时,不会将依赖打包进去,需要在服务器上clone项目,安装依赖。
这个答案不是我想要的,在服务器上安装node_modules
纯属胡闹。幸运的是,经过一番研究后,我终于解决了这个问题,本文就跟大家分享下我的实现思路与方案,欢迎各位感兴趣的开发者阅读本文。
场景概述
我们继续用文章“使用NestJS搭建服务端应用[1]”所创建的项目,以此为基础来描述这个问题,我们打开package.json文件,执行里面的build
命令。
{
"scripts": {
"build": "nest build",
}
}
一眨眼的功夫,它就打包好了,在你的项目根目录下会多出一个dist
文件夹,如下如所示,这就是它所打包出来的文件。
image-20220217225521052
紧接着,我们把dist目录上传到服务器,用node来执行其目录下的main.js文件,上传文件至服务器后,我发现整个文件夹竟然只有18KB,我当时惊呆了,心想js这么牛的吗!开发出来的服务端应用包体积居然这么小,同样的功能使用Java实现,打包出来的jar包都50MB起步了!
image-20220217230347949
当我在服务器上运行时,我傻眼了,程序报错跑不起来