From b56ba651d80807244a37677f71cfa5c2b7d7b12a Mon Sep 17 00:00:00 2001 From: Sukka Date: Fri, 1 Oct 2021 21:16:37 +0800 Subject: [PATCH] refactor/perf: use nanocolors (#4788) --- lib/box/index.js | 2 +- lib/extend/tag.js | 4 ++-- lib/hexo/index.js | 2 +- lib/hexo/load_config.js | 2 +- lib/hexo/load_plugins.js | 2 +- lib/hexo/load_theme_config.js | 2 +- lib/hexo/post.js | 2 +- lib/plugins/console/deploy.js | 2 +- lib/plugins/console/generate.js | 2 +- lib/plugins/console/list/category.js | 2 +- lib/plugins/console/list/page.js | 2 +- lib/plugins/console/list/post.js | 2 +- lib/plugins/console/list/tag.js | 2 +- lib/plugins/console/migrate.js | 2 +- lib/plugins/console/new.js | 2 +- lib/plugins/console/publish.js | 2 +- lib/plugins/console/render.js | 2 +- lib/plugins/generator/asset.js | 2 +- package.json | 2 +- test/benchmark.js | 2 +- 20 files changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/box/index.js b/lib/box/index.js index 0c24456944..f248dd58ee 100644 --- a/lib/box/index.js +++ b/lib/box/index.js @@ -5,7 +5,7 @@ const Promise = require('bluebird'); const File = require('./file'); const { Pattern, createSha1Hash } = require('hexo-util'); const { createReadStream, readdir, stat, watch } = require('hexo-fs'); -const { magenta } = require('chalk'); +const { magenta } = require('nanocolors'); const { EventEmitter } = require('events'); const { isMatch, makeRe } = require('micromatch'); diff --git a/lib/extend/tag.js b/lib/extend/tag.js index 6eed6e5aa7..71e8676916 100644 --- a/lib/extend/tag.js +++ b/lib/extend/tag.js @@ -1,7 +1,7 @@ 'use strict'; const { stripIndent } = require('hexo-util'); -const { cyan, magenta, red } = require('chalk'); +const { cyan, magenta, red, bold } = require('nanocolors'); const { Environment } = require('nunjucks'); const Promise = require('bluebird'); const rSwigRawFullBlock = /{% *raw *%}/; @@ -141,7 +141,7 @@ const getContext = (lines, errLine, location, type) => { .map(lnNum => { const line = ' ' + lnNum + ' | ' + lines[lnNum - 1]; if (lnNum === errLine) { - return cyan.bold(line); + return cyan(bold(line)); } return cyan(line); diff --git a/lib/hexo/index.js b/lib/hexo/index.js index 67c332ab28..1f0b4de18c 100644 --- a/lib/hexo/index.js +++ b/lib/hexo/index.js @@ -4,7 +4,7 @@ const Promise = require('bluebird'); const { sep, join, dirname } = require('path'); const tildify = require('tildify'); const Database = require('warehouse'); -const { magenta, underline } = require('chalk'); +const { magenta, underline } = require('nanocolors'); const { EventEmitter } = require('events'); const { readFile } = require('hexo-fs'); const Module = require('module'); diff --git a/lib/hexo/load_config.js b/lib/hexo/load_config.js index 258bdab0c7..41faae464d 100644 --- a/lib/hexo/load_config.js +++ b/lib/hexo/load_config.js @@ -5,7 +5,7 @@ const tildify = require('tildify'); const Theme = require('../theme'); const Source = require('./source'); const { exists, readdir } = require('hexo-fs'); -const { magenta } = require('chalk'); +const { magenta } = require('nanocolors'); const { deepMerge } = require('hexo-util'); const validateConfig = require('./validate_config'); const { external_link: externalLinkDefaultCfg } = require('./default_config'); diff --git a/lib/hexo/load_plugins.js b/lib/hexo/load_plugins.js index d48b8830cb..d2cc4d9cf9 100644 --- a/lib/hexo/load_plugins.js +++ b/lib/hexo/load_plugins.js @@ -3,7 +3,7 @@ const { join } = require('path'); const { exists, readFile, listDir } = require('hexo-fs'); const Promise = require('bluebird'); -const { magenta } = require('chalk'); +const { magenta } = require('nanocolors'); module.exports = ctx => { if (!ctx.env.init || ctx.env.safe) return; diff --git a/lib/hexo/load_theme_config.js b/lib/hexo/load_theme_config.js index 5079d78c56..697ddfdd31 100644 --- a/lib/hexo/load_theme_config.js +++ b/lib/hexo/load_theme_config.js @@ -3,7 +3,7 @@ const { join, parse } = require('path'); const tildify = require('tildify'); const { exists, readdir } = require('hexo-fs'); -const { magenta } = require('chalk'); +const { magenta } = require('nanocolors'); const { deepMerge } = require('hexo-util'); module.exports = ctx => { diff --git a/lib/hexo/post.js b/lib/hexo/post.js index a1c356b481..9db255d437 100644 --- a/lib/hexo/post.js +++ b/lib/hexo/post.js @@ -4,7 +4,7 @@ const assert = require('assert'); const moment = require('moment'); const Promise = require('bluebird'); const { join, extname, basename } = require('path'); -const { magenta } = require('chalk'); +const { magenta } = require('nanocolors'); const { load } = require('js-yaml'); const { slugize, escapeRegExp } = require('hexo-util'); const { copyDir, exists, listDir, mkdirs, readFile, rmdir, unlink, writeFile } = require('hexo-fs'); diff --git a/lib/plugins/console/deploy.js b/lib/plugins/console/deploy.js index f3c348ffe1..b48ebf06a1 100644 --- a/lib/plugins/console/deploy.js +++ b/lib/plugins/console/deploy.js @@ -1,7 +1,7 @@ 'use strict'; const { exists } = require('hexo-fs'); -const { underline, magenta } = require('chalk'); +const { underline, magenta } = require('nanocolors'); function deployConsole(args) { let config = this.config.deploy; diff --git a/lib/plugins/console/generate.js b/lib/plugins/console/generate.js index 8bf33fc13d..f32042e8ab 100644 --- a/lib/plugins/console/generate.js +++ b/lib/plugins/console/generate.js @@ -4,7 +4,7 @@ const { exists, writeFile, unlink, stat, mkdirs } = require('hexo-fs'); const { join } = require('path'); const Promise = require('bluebird'); const prettyHrtime = require('pretty-hrtime'); -const { cyan, magenta } = require('chalk'); +const { cyan, magenta } = require('nanocolors'); const tildify = require('tildify'); const { PassThrough } = require('stream'); const { createSha1Hash } = require('hexo-util'); diff --git a/lib/plugins/console/list/category.js b/lib/plugins/console/list/category.js index 06d9df4377..3691d6900f 100644 --- a/lib/plugins/console/list/category.js +++ b/lib/plugins/console/list/category.js @@ -1,6 +1,6 @@ 'use strict'; -const { underline } = require('chalk'); +const { underline } = require('nanocolors'); const table = require('text-table'); const { stringLength } = require('./common'); diff --git a/lib/plugins/console/list/page.js b/lib/plugins/console/list/page.js index 32656208da..f6bd970521 100644 --- a/lib/plugins/console/list/page.js +++ b/lib/plugins/console/list/page.js @@ -1,6 +1,6 @@ 'use strict'; -const { magenta, underline, gray } = require('chalk'); +const { magenta, underline, gray } = require('nanocolors'); const table = require('text-table'); const { stringLength } = require('./common'); diff --git a/lib/plugins/console/list/post.js b/lib/plugins/console/list/post.js index 8e72638e42..a5abc30a60 100644 --- a/lib/plugins/console/list/post.js +++ b/lib/plugins/console/list/post.js @@ -1,6 +1,6 @@ 'use strict'; -const { gray, magenta, underline } = require('chalk'); +const { gray, magenta, underline } = require('nanocolors'); const table = require('text-table'); const { stringLength } = require('./common'); diff --git a/lib/plugins/console/list/tag.js b/lib/plugins/console/list/tag.js index 4957e4341d..0c532085bf 100644 --- a/lib/plugins/console/list/tag.js +++ b/lib/plugins/console/list/tag.js @@ -1,6 +1,6 @@ 'use strict'; -const { magenta, underline } = require('chalk'); +const { magenta, underline } = require('nanocolors'); const table = require('text-table'); const { stringLength } = require('./common'); diff --git a/lib/plugins/console/migrate.js b/lib/plugins/console/migrate.js index 78d7a93b1f..a86c4dd42a 100644 --- a/lib/plugins/console/migrate.js +++ b/lib/plugins/console/migrate.js @@ -1,6 +1,6 @@ 'use strict'; -const { underline, magenta } = require('chalk'); +const { underline, magenta } = require('nanocolors'); function migrateConsole(args) { // Display help message if user didn't input any arguments diff --git a/lib/plugins/console/new.js b/lib/plugins/console/new.js index 75df6d240b..0e471ad918 100644 --- a/lib/plugins/console/new.js +++ b/lib/plugins/console/new.js @@ -1,7 +1,7 @@ 'use strict'; const tildify = require('tildify'); -const { magenta } = require('chalk'); +const { magenta } = require('nanocolors'); const reservedKeys = { _: true, diff --git a/lib/plugins/console/publish.js b/lib/plugins/console/publish.js index 46f19dd954..4f535bcf8a 100644 --- a/lib/plugins/console/publish.js +++ b/lib/plugins/console/publish.js @@ -1,7 +1,7 @@ 'use strict'; const tildify = require('tildify'); -const { magenta } = require('chalk'); +const { magenta } = require('nanocolors'); function publishConsole(args) { // Display help message if user didn't input any arguments diff --git a/lib/plugins/console/render.js b/lib/plugins/console/render.js index ff8f352eeb..44cfb666c2 100644 --- a/lib/plugins/console/render.js +++ b/lib/plugins/console/render.js @@ -4,7 +4,7 @@ const { resolve } = require('path'); const tildify = require('tildify'); const prettyHrtime = require('pretty-hrtime'); const fs = require('hexo-fs'); -const { cyan, magenta } = require('chalk'); +const { cyan, magenta } = require('nanocolors'); function renderConsole(args) { // Display help message if user didn't input any arguments diff --git a/lib/plugins/generator/asset.js b/lib/plugins/generator/asset.js index cf8b8a6ccc..7630b16689 100644 --- a/lib/plugins/generator/asset.js +++ b/lib/plugins/generator/asset.js @@ -3,7 +3,7 @@ const fs = require('hexo-fs'); const Promise = require('bluebird'); const { extname } = require('path'); -const { magenta } = require('chalk'); +const { magenta } = require('nanocolors'); const process = (name, ctx) => { return Promise.filter(ctx.model(name).toArray(), asset => fs.exists(asset.source).tap(exist => { diff --git a/package.json b/package.json index 5815b63e04..0f9f40734c 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,6 @@ "abbrev": "^1.1.1", "archy": "^1.0.0", "bluebird": "^3.5.2", - "chalk": "^4.0.0", "hexo-cli": "^4.0.0", "hexo-front-matter": "^2.0.0", "hexo-fs": "^3.1.0", @@ -53,6 +52,7 @@ "micromatch": "^4.0.2", "moment": "^2.22.2", "moment-timezone": "^0.5.21", + "nanocolors": "^0.2.12", "nunjucks": "^3.2.1", "pretty-hrtime": "^1.0.3", "resolve": "^1.8.1", diff --git a/test/benchmark.js b/test/benchmark.js index eef852a2c3..83a7ead992 100644 --- a/test/benchmark.js +++ b/test/benchmark.js @@ -6,7 +6,7 @@ const { spawn: spawnAsync } = require('hexo-util'); const { rmdir, exists } = require('hexo-fs'); const { join, resolve } = require('path'); const log = require('hexo-log')(); -const { red } = require('chalk'); +const { red } = require('nanocolors'); const hooks = [ { regex: /Hexo version/, tag: 'hexo-begin' }, { regex: /Start processing/, tag: 'processing' },