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

如何在Rollup(含Vite构建)中禁用ANSI转义码输出?

如何禁用Vite生产构建时的ANSI转义码输出?

完全可以实现禁用ANSI转义码输出,同时支持通过环境变量区分本地和CI构建场景,以下是几种可行方案:

1. 直接使用命令行参数

Vite内置了--no-color参数,执行构建时添加该参数即可输出纯文本日志:

vite build --no-color

2. 利用环境变量自动适配CI场景

大部分CI平台(如Jenkins)会自动设置CI=true环境变量,你可以在package.json的脚本中添加条件判断,实现本地构建保留颜色、CI构建自动禁用:

Unix/Linux/macOS环境

"scripts": {
  "build": "[ \"$CI\" = \"true\" ] && vite build --no-color || vite build"
}

Windows环境(PowerShell)

"scripts": {
  "build": "if ($env:CI -eq 'true') { vite build --no-color } else { vite build }"
}

或者拆分出单独的CI构建命令,在Jenkins中直接执行:

"scripts": {
  "build": "vite build",
  "build:ci": "vite build --no-color"
}

3. 通过Vite配置文件全局控制

如果你需要在配置层面统一处理,可以在vite.config.js中根据环境变量动态调整日志输出:

import { defineConfig } from 'vite';

export default defineConfig({
  // 控制Vite日志是否带颜色
  logger: {
    hasColoredOutput: !process.env.CI
  },
  build: {
    rollupOptions: {
      // 处理Rollup的警告日志,确保CI环境输出纯文本
      onwarn(warning, warn) {
        if (process.env.CI) {
          console.log(warning.message);
        } else {
          warn(warning);
        }
      }
    }
  }
});

效果验证

配置完成后,CI环境下的构建日志会自动去除ANSI转义码,输出示例如下:

vite v4.0.3 building for production...
transforming...

Missing export "createServer" has been shimmed in module "__vite-browser-external".

Missing export "Socket" has been shimmed in module "__vite-browser-external".
✓ 3098 modules transformed.
rendering chunks...
computing gzip size...
build/assets/editor-side-line-straight-3b1dfbb4.svg            0.41 kB
build/assets/squiggle-cb9fe55e.svg                             0.47 kB
build/assets/markdown-8b37fca1.svg                             0.58 kB
build/assets/shell-40c17629.svg                                0.60 kB
build/assets/remove-899a6ae3.svg                               0.65 kB

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 18:10:37