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

如何在Vue.js前端项目中使用pino-pretty?导入遇process重复声明错误

解决Vue.js中使用pino-pretty时的process重复声明错误

错误原因

pino-pretty原本为Node.js环境设计,依赖原生process对象。在Vue.js前端项目中,若构建工具(如Vite、Webpack)或其他依赖已在全局/模块中声明process变量,就会触发Identifier 'process' has already been declared语法错误。

可行解决方案

1. 避免前端直接导入pino-pretty

pino-pretty更适合Node.js后端场景,前端建议仅使用pino核心库,搭配自定义前端格式化逻辑:

import pino from 'pino'

const logger = pino({
  browser: {
    write: (logObj) => {
      const { level, msg, time } = JSON.parse(logObj)
      console.log(`[${new Date(time).toLocaleString()}] [${level}] ${msg}`)
    }
  }
})

2. 排查并修复process重复声明

检查项目配置文件(如vite.config.js、vue.config.js)或自定义脚本,是否存在手动声明process的代码:

// 错误写法:重复声明process
const process = require('process')

改为导入方式,或直接使用构建工具注入的全局process:

// 正确写法
import process from 'process'

3. 调整pino-transport配置(适配前端构建)

若必须使用pino-pretty,可在transport配置中忽略Node.js特有字段,同时确保构建工具不重复注入process:

import pino from 'pino'

const logger = pino({
  transport: {
    target: 'pino-pretty',
    options: {
      ignore: 'pid,hostname',
      colorize: false // 前端环境通常不支持终端颜色
    }
  },
  browser: {
    transmit: {
      level: 'info',
      send: (level, logEvent) => console.log(logEvent)
    }
  }
})

4. 对齐依赖版本

检查pino与pino-pretty的版本兼容性,尝试升级到最新稳定版,或降级到已知适配前端环境的版本(例如pino@8.x + pino-pretty@10.x组合)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:10:52