🌐 Chalk to util.styleText()
将 chalk npm 包的使用迁移到 Node.js 内置的 util.styleText() API。用 { styleText } 从 node:util 替换 chalk 的导入,并相应地重写所有 chalk 方法调用。链式 chalk 样式会被转换为样式字符串数组。
🌐 Migrates usage of the chalk npm package to the Node.js built-in util.styleText() API. Replaces the chalk import with { styleText } from node:util and rewrites all chalk method calls accordingly. Chained chalk styles are converted to an array of style strings.
🌐 Usage
使用这个 codemod 运行:
🌐 Run this codemod with:
npx codemod @nodejs/chalk-to-util-styletext
🌐 Examples
🌐 Example 1
基本颜色方法(ESM 默认导入)
🌐 Basic color methods (ESM default import)
-import chalk from "chalk"; +import { styleText } from "node:util"; -console.log(chalk.red("Error message")); -console.log(chalk.green("Success message")); -console.log(chalk.blue("Info message")); +console.log(styleText("red", "Error message")); +console.log(styleText("green", "Success message")); +console.log(styleText("blue", "Info message"));
🌐 Example 2
链式风格
🌐 Chained styles
-import chalk from "chalk"; +import { styleText } from "node:util"; -console.log(chalk.red.bold("Error: Operation failed")); -console.log(chalk.green.underline("Success: All tests passed")); -console.log(chalk.yellow.bgBlack("Warning: Deprecated API usage")); +console.log(styleText(["red", "bold"], "Error: Operation failed")); +console.log(styleText(["green", "underline"], "Success: All tests passed")); +console.log(styleText(["yellow", "bgBlack"], "Warning: Deprecated API usage"));
🌐 Example 3
CommonJS require
-const chalk = require("chalk"); +const { styleText } = require("node:util"); -const error = chalk.red("Error"); -const warning = chalk.yellow("Warning"); -const info = chalk.blue("Info"); +const error = styleText("red", "Error"); +const warning = styleText("yellow", "Warning"); +const info = styleText("blue", "Info"); console.log(error, warning, info);
🌐 Notes
🌐 Limitations
没有直接 util.styleText 对应的方法——包括 hex()、rgb()、ansi256()、bgAnsi256()、visible() 和 new chalk.Chalk() ——会被跳过。每次不支持的调用都会打印警告,这些调用点会保持不变,以便手动检查。
🌐 Chalk methods that have no direct util.styleText equivalent — including hex(), rgb(), ansi256(), bgAnsi256(), visible(), and new chalk.Chalk() — are skipped. A warning is printed for each unsupported call, and those call sites are left unchanged for manual review.