You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AdonisJS v5 Docker运行报错缺少pino-pretty模块如何解决

问题根因

AdonisJS v5 内置的日志组件基于Pino实现,默认开发环境会开启pino-pretty格式化日志输出,该依赖默认被标记为dev依赖。你本地开发时安装了全部依赖所以运行正常,Docker构建时通常只会安装生产依赖、且运行环境会设置NODE_ENV=production,如果日志配置还强制开启pretty打印就会触发依赖缺失报错。

解决方案

方案1(生产环境推荐):关闭生产环境pretty日志

生产环境不需要人类易读的格式化日志,JSON格式的原始日志更适合日志采集、分析系统处理,直接修改日志配置即可:

  1. 打开项目下config/logger.ts文件
  2. 修改prettyPrint配置项,仅开发环境开启:
import { LoggerConfig } from '@ioc:Adonis/Core/Logger'

const loggerConfig: LoggerConfig = {
  name: Env.get('APP_NAME'),
  enabled: true,
  level: Env.get('LOG_LEVEL', 'info'),
  // 仅开发环境启用pretty打印
  prettyPrint: Env.get('NODE_ENV') === 'development',
}

export default loggerConfig

修改后重新构建Docker镜像即可解决问题。

方案2(特殊场景使用):将pino-pretty加入生产依赖

如果你确实需要在Docker运行环境输出格式化日志,可以直接将该依赖安装为生产依赖:

npm install pino-pretty --save
# 或yarn add pino-pretty

重新构建镜像即可。

方案3(开发环境Docker使用):安装全部依赖

如果你的Docker是用于本地开发而非生产部署,检查Dockerfile中的依赖安装命令,移除生产安装参数:
将类似npm ci --only=production的命令改为npm ci,会同时安装dev依赖,包含pino-pretty。

内容的提问来源于stack exchange,提问作者sokida

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:06:03