MidwayJS打包部署相关问题
时间:2025-05-02 08:58:29
关键词: nodejstypescript后端框架MidwayJS

MidwayJS我使用的部署方式有普通部署,另外也知道一些单文件部署,二进制文件部署的坑

具体部署方法,请参考https://midwayjs.org/docs/deployment 框架的相关文档

普通部署

如果服务器是linux服务器,并且是初次接触node项目部署,优先考虑使用pm2等技术进行部署node项目。因为直接运行node项目的话,想关闭或者重启项目会比较麻烦,使用pm2方便管理。

另外普通部署时,当代码上传到服务器中后,使用npm install --production命令下载对应的包。不要使用npm install,因为开发环境的部分包在生产环境不需要,比如ts编译等。上传到服务器中的应该是js代码,而不是ts。

单文件部署和二进制文件部署

单文件部署和二进制文件部署比较像,流程上实际单文件部署就把整个node项目打包成了一个js文件,在服务器中直接运行,而二进制文件是把整个项目打包成二进制文件,比单js文件在安全性上要好。

最需要注意的有2点:

  1. 注意Alias Path

也就是前端平时开发经常用"@"来省略部分路径 import { ServiceError } from '@/filter/error/service.error' 在MidwayJS项目中默认不支持这样方法, 官网上有代替方案,但是在单文件部署和二进制文件部署中,不能使用,会导致出错。需要使用import { ServiceError } from '../../../filter/error/service.error'这样的写法

  1. 注意使用view目录用法。

我在使用MidwayJS的时候,使用了ejs模板,进行服务端渲染一些页面。 这种情况下使用单文件部署和二进制文件部署会出错,因为打包的时候不会打包view目录中的ejs文件,打包后在服务器中路径寻找错误。

所以需要使用模板的情况,可以考虑普通部署

豫ICP备19045658号

豫公网安备41070202001641号

本站内容以技术内容,技术展示,和ACG文化相关内容为主,不收集、不存储、不上传任何用户数据

本网站目前没有任何充值,会员等功能,也没有购买,打赏,捐赠等行为,如果通过付费行为才进入本站,说明你被别人骗了