nestJs项⽬打包部署的⽅法中午,接到朋友有⼀个需求,想⽤node写⼀个服务,将word⽂档转换为html。
为什么不⽤java呢?我问到(毕竟他后端语⾔⽤的是java)。
他说他到的⼏个第三⽅插件都不是特别符合,转换后总有⼀些问题。
他到了⼀个前端的本地转换的插件,⽐较符合他的要求。
但是是纯前端的本地转换,上传⽂件然后转换那种。
所以他问我能不能把这个⽤node写成后端服务。
我也刚好挺感兴趣的,就动⼿做了起来。
⽹上参考了各路⼤神意见,都说nestJs还不错,⽐较像spring,
刚好我也对spring⽐较熟悉,折腾了半个⼩时,搭建nestJs项⽬,
写controller,service,代码写完了,删掉多余的console.log,
我⾃⼰写的总共不到10⾏代码。
controller
service
本地测试,基本没什么问题。⼤功告成,准备部署!
运⾏npm run build,将dist⽬录复制到服务器,
服务器安装nodeJS, 安装pm2, ⽤pm2 来启动dist⽬录下的main.js
然后打开浏览器访问,发现服务没有启动成功 ???
⽤pm2查看⽇志,⼤概说是没有到nest/core模块。
仔细看⼀下dist⽬录,很快发现了异常,
⽬录中只有⼏个普通的js⽂件,那些依赖⽂件呢 ?
回头看本地的dist⽂件夹,打包出来的dist ⽬录只有300多k。
⽤过npm的前端都知道,dist⽂件夹⼀般都不会这么⼩,⼀般⼀个项⽬⾥⾯会有各种依赖。那依赖去哪⾥了呢? 我打包的⽅法不对 ? 仔细看package.json。确实没有其他build⽅法啊。
百度google⼀阵搜索nestJs打包,⼤家都告诉我npm run build。。。。
莫⾮是我build设置有问题 ? 看了好⼏遍 tsconfig.build.json,
不懂的配置都去查⼀下,好像没什么问题啊。
等等,dist⽬录下好像有⼀个tsconfig.build.tsbuildInfo⽂件。
打开看看,
⾥⾯是相关依赖的指向位置,我忽然理解了什么。
可是这不是我想要的,我不想要指向位置!我想要把依赖打包进去。
⼜是google⼀阵搜索(百度已经搜不到相关资料了)。
去nestJs的github的issue⾥⾯了半天,还真是不到相关资料。
难道全世界只有我⼀个遇到这个问题? 什么垃圾nestJs,我再也不想⽤了。
准备放弃,⼜舍不得沉没成本。。。
⼜⼀遍遍的回想之前的问题,想到依赖指向位置的时候,忽然灵光⼀闪
如果,我在服务器上打包呢? 那指向的位置不就正确了吗!!!!
说做就做,将整个项⽬除了node_module和dist⽬录,其他都放到服务器
nodejs到底是干嘛用的呢运⾏npm install,运⾏npm run build,进⼊dist⽬录,运⾏node main.js
浏览器访问,果然成功了。
开⼼!!!
后记:虽然打包部署成功了,回想这次折腾这么久的经历,主要问题在于
根据我以前的经验,打包⼀般都会把依赖打进去,然后⽣成⼀个单独的包⽤来部署。这nestJs却好像不⾏,那如果是要部署到⼀台没有联⽹的电脑呢?
⼜或者确实有将依赖打⼊dist⽬录的⽅法?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。