Skip to content

Commit

Permalink
fix(cli/dev): fixed bug of repeat restart server
Browse files Browse the repository at this point in the history
affects: @varlet/cli
  • Loading branch information
haoziqaq committed Oct 20, 2021
1 parent 28b4ea9 commit e14f090
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions packages/varlet-cli/src/commands/dev.ts
Original file line number Diff line number Diff line change
@@ -1,38 +1,40 @@
import chokidar from 'chokidar'
import chokidar, { FSWatcher } from 'chokidar'
import logger from '../shared/logger'
import { createServer, ViteDevServer } from 'vite'
import { ensureDirSync, pathExistsSync } from 'fs-extra'
import { SRC_DIR, VARLET_CONFIG } from '../shared/constant'
import { buildSiteEntry } from '../compiler/compileSiteEntry'
import { getDevConfig } from '../config/vite.config'
import { getVarletConfig } from '../config/varlet.config'
import { merge } from 'lodash'
import logger from '../shared/logger'

let server: ViteDevServer | null

function watchConfigFile(force: boolean | undefined) {
if (!pathExistsSync(VARLET_CONFIG)) {
return
}

const watcher = chokidar.watch(VARLET_CONFIG)
watcher.on('change', () => startServer(force))
}
let server: ViteDevServer
let watcher: FSWatcher

async function startServer(force: boolean | undefined) {
const isRestart = Boolean(server)
logger.info(`${isRestart ? 'Res' : 'S'}tarting server...`)

// close all instance
server && (await server.close())
watcher && (await watcher.close())

// build all config
await buildSiteEntry()
const varletConfig = getVarletConfig()
const devConfig = getDevConfig(varletConfig)
const inlineConfig = merge(devConfig, force ? { server: { force: true } } : {})

// create all instance
server = await createServer(inlineConfig)
await server.listen()
server.printUrls()

if (pathExistsSync(VARLET_CONFIG)) {
watcher = chokidar.watch(VARLET_CONFIG)
watcher.on('change', () => startServer(force))
}

logger.info(`${isRestart ? 'Res' : 'S'}tart successfully!!!`)
}

Expand All @@ -42,6 +44,4 @@ export async function dev(cmd: { force?: boolean }) {
ensureDirSync(SRC_DIR)

await startServer(cmd.force)

watchConfigFile(cmd.force)
}

0 comments on commit e14f090

Please sign in to comment.