From 0148475813ffa34b0cecdab25a5e6cc6604a3765 Mon Sep 17 00:00:00 2001 From: alexzhang1030 <1642114555@qq.com> Date: Mon, 22 May 2023 21:27:54 +0800 Subject: [PATCH 1/3] feat(node): cli shortcuts add restart --- src/node/shortcuts.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/node/shortcuts.ts b/src/node/shortcuts.ts index 7e27fd65279d..6e635e785f7b 100644 --- a/src/node/shortcuts.ts +++ b/src/node/shortcuts.ts @@ -63,6 +63,13 @@ export function bindShortcuts(server: ViteDevServer): void { } const SHORTCUTS: CLIShortcut[] = [ + { + key: 'r', + description: 'restart the server', + async action(server) { + await server.restart() + } + }, { key: 'u', description: 'show server url', From ace376806874d64619f40af90f563e714c645ad4 Mon Sep 17 00:00:00 2001 From: alexzhang1030 <1642114555@qq.com> Date: Mon, 22 May 2023 21:50:15 +0800 Subject: [PATCH 2/3] fix: restart server action --- src/node/cli.ts | 2 +- src/node/shortcuts.ts | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/node/cli.ts b/src/node/cli.ts index 4aef97478890..c2bd9e4afd4c 100644 --- a/src/node/cli.ts +++ b/src/node/cli.ts @@ -34,7 +34,7 @@ if (!command || command === 'dev') { await server.listen() logVersion(server.config.logger) server.printUrls() - bindShortcuts(server) + bindShortcuts(server, createDevServer) } createDevServer().catch((err) => { createLogger().error( diff --git a/src/node/shortcuts.ts b/src/node/shortcuts.ts index 6e635e785f7b..330f0b2d7ce6 100644 --- a/src/node/shortcuts.ts +++ b/src/node/shortcuts.ts @@ -1,13 +1,21 @@ import colors from 'picocolors' import type { ViteDevServer } from 'vite' +type CreateDevServer = () => Promise + export type CLIShortcut = { key: string description: string - action(server: ViteDevServer): void | Promise + action( + server: ViteDevServer, + createDevServer: CreateDevServer + ): void | Promise } -export function bindShortcuts(server: ViteDevServer): void { +export function bindShortcuts( + server: ViteDevServer, + createDevServer: CreateDevServer +): void { if (!server.httpServer || !process.stdin.isTTY || process.env.CI) { return } @@ -49,7 +57,7 @@ export function bindShortcuts(server: ViteDevServer): void { if (!shortcut) return actionRunning = true - await shortcut.action(server) + await shortcut.action(server, createDevServer) actionRunning = false } @@ -66,8 +74,9 @@ const SHORTCUTS: CLIShortcut[] = [ { key: 'r', description: 'restart the server', - async action(server) { - await server.restart() + async action(server, createDevServer) { + await server.close() + await createDevServer() } }, { From a535c3294eeb4ea0755d6ee8302a22b0b7a3ce8c Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Sat, 27 May 2023 14:50:05 +0530 Subject: [PATCH 3/3] fix: clear cache on restart --- src/node/shortcuts.ts | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/node/shortcuts.ts b/src/node/shortcuts.ts index 330f0b2d7ce6..11f88565fe9d 100644 --- a/src/node/shortcuts.ts +++ b/src/node/shortcuts.ts @@ -1,5 +1,6 @@ -import colors from 'picocolors' import type { ViteDevServer } from 'vite' +import c from 'picocolors' +import { clearCache } from './markdownToVue' type CreateDevServer = () => Promise @@ -21,10 +22,10 @@ export function bindShortcuts( } server.config.logger.info( - colors.dim(colors.green(' ➜')) + - colors.dim(' press ') + - colors.bold('h') + - colors.dim(' to show help') + c.dim(c.green(' ➜')) + + c.dim(' press ') + + c.bold('h') + + c.dim(' to show help') ) let actionRunning = false @@ -42,12 +43,12 @@ export function bindShortcuts( server.config.logger.info( [ '', - colors.bold(' Shortcuts'), + c.bold(' Shortcuts'), ...SHORTCUTS.map( (shortcut) => - colors.dim(' press ') + - colors.bold(shortcut.key) + - colors.dim(` to ${shortcut.description}`) + c.dim(' press ') + + c.bold(shortcut.key) + + c.dim(` to ${shortcut.description}`) ) ].join('\n') ) @@ -75,6 +76,11 @@ const SHORTCUTS: CLIShortcut[] = [ key: 'r', description: 'restart the server', async action(server, createDevServer) { + server.config.logger.info(c.green(`restarting server...\n`), { + clear: true, + timestamp: true + }) + clearCache() await server.close() await createDevServer() }