laf
laf copied to clipboard
[bug] 安装 app-service 自带依赖的另一版本导致 app-service 启动失败
复现方法:
- 在依赖管理安装
[email protected],再安装一个非自带依赖,如vue@latest - 重启服务
- 查看容器信息,发现 app-service 崩溃了,崩溃日志如下

发生这个问题的原因:
multer 是 app-service 启动服务所需要的依赖,当使用依赖管理安装另一个版本的 multer 时,这个另一个版本的 multer 会覆盖原来自带的 multer,导致启动失败。
一些解决方案:
- 使用依赖别名,给
app-service运行需要的依赖全部加上别名
npm install -S laf-internal-multer@npm:multer
- 使用
rollup等打包工具将app-service业务代码和所需依赖打包在一起,构建镜像时忽略 node_modules 以及 package.json。 - 将
app-service的核心业务逻辑移动到另外一个包app-service-engine,app-service只用来调用app-service-engine这个库的函数,这样app-service只含有app-service-engine这一个依赖。