fix: rebuild errors on windows (#692)
This commit is contained in:
		@@ -2,7 +2,6 @@ import sourceMapSupport from "source-map-support"
 | 
			
		||||
sourceMapSupport.install(options)
 | 
			
		||||
import path from "path"
 | 
			
		||||
import { PerfTimer } from "./util/perf"
 | 
			
		||||
import { rimraf } from "rimraf"
 | 
			
		||||
import { isGitIgnored } from "globby"
 | 
			
		||||
import chalk from "chalk"
 | 
			
		||||
import { parseMarkdown } from "./processors/parse"
 | 
			
		||||
@@ -13,6 +12,7 @@ import { FilePath, joinSegments, slugifyFilePath } from "./util/path"
 | 
			
		||||
import chokidar from "chokidar"
 | 
			
		||||
import { ProcessedContent } from "./plugins/vfile"
 | 
			
		||||
import { Argv, BuildCtx } from "./util/ctx"
 | 
			
		||||
import { rmrf } from "./util/fs"
 | 
			
		||||
import { glob, toPosixPath } from "./util/glob"
 | 
			
		||||
import { trace } from "./util/trace"
 | 
			
		||||
import { options } from "./util/sourcemap"
 | 
			
		||||
@@ -40,7 +40,7 @@ async function buildQuartz(argv: Argv, mut: Mutex, clientRefresh: () => void) {
 | 
			
		||||
 | 
			
		||||
  const release = await mut.acquire()
 | 
			
		||||
  perf.addEvent("clean")
 | 
			
		||||
  await rimraf(output)
 | 
			
		||||
  await rmrf(output)
 | 
			
		||||
  console.log(`Cleaned output directory \`${output}\` in ${perf.timeSince("clean")}`)
 | 
			
		||||
 | 
			
		||||
  perf.addEvent("glob")
 | 
			
		||||
@@ -145,7 +145,7 @@ async function startServing(
 | 
			
		||||
 | 
			
		||||
      // TODO: we can probably traverse the link graph to figure out what's safe to delete here
 | 
			
		||||
      // instead of just deleting everything
 | 
			
		||||
      await rimraf(argv.output)
 | 
			
		||||
      await rmrf(argv.output)
 | 
			
		||||
      await emitContent(ctx, filteredContent)
 | 
			
		||||
      console.log(chalk.green(`Done rebuilding in ${perf.timeSince()}`))
 | 
			
		||||
    } catch (err) {
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,6 @@ import chalk from "chalk"
 | 
			
		||||
import { sassPlugin } from "esbuild-sass-plugin"
 | 
			
		||||
import fs from "fs"
 | 
			
		||||
import { intro, outro, select, text } from "@clack/prompts"
 | 
			
		||||
import { rimraf } from "rimraf"
 | 
			
		||||
import chokidar from "chokidar"
 | 
			
		||||
import prettyBytes from "pretty-bytes"
 | 
			
		||||
import { execSync, spawnSync } from "child_process"
 | 
			
		||||
@@ -21,6 +20,7 @@ import {
 | 
			
		||||
  gitPull,
 | 
			
		||||
  popContentFolder,
 | 
			
		||||
  stashContentFolder,
 | 
			
		||||
  rmrf,
 | 
			
		||||
} from "./helpers.js"
 | 
			
		||||
import {
 | 
			
		||||
  UPSTREAM_NAME,
 | 
			
		||||
@@ -109,7 +109,7 @@ export async function handleCreate(argv) {
 | 
			
		||||
    if (contentStat.isSymbolicLink()) {
 | 
			
		||||
      await fs.promises.unlink(contentFolder)
 | 
			
		||||
    } else {
 | 
			
		||||
      await rimraf(contentFolder)
 | 
			
		||||
      await rmrf(contentFolder)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,7 @@ import chalk from "chalk"
 | 
			
		||||
import { contentCacheFolder } from "./constants.js"
 | 
			
		||||
import { spawnSync } from "child_process"
 | 
			
		||||
import fs from "fs"
 | 
			
		||||
import { rimraf } from "rimraf"
 | 
			
		||||
 | 
			
		||||
export function escapePath(fp) {
 | 
			
		||||
  return fp
 | 
			
		||||
@@ -52,3 +53,11 @@ export async function popContentFolder(contentFolder) {
 | 
			
		||||
  })
 | 
			
		||||
  await fs.promises.rm(contentCacheFolder, { force: true, recursive: true })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export async function rmrf(path) {
 | 
			
		||||
  if (os.platform() == "win32") {
 | 
			
		||||
    return rimraf.windows(path)
 | 
			
		||||
  } else {
 | 
			
		||||
    return rimraf(path)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								quartz/util/fs.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								quartz/util/fs.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
import os from "os"
 | 
			
		||||
import { rimraf, RimrafAsyncOptions } from "rimraf"
 | 
			
		||||
 | 
			
		||||
export async function rmrf(
 | 
			
		||||
  path: string | string[],
 | 
			
		||||
  opt?: RimrafAsyncOptions | undefined,
 | 
			
		||||
): Promise<boolean> {
 | 
			
		||||
  if (os.platform() == "win32") {
 | 
			
		||||
    return rimraf.windows(path, opt)
 | 
			
		||||
  } else {
 | 
			
		||||
    return rimraf(path, opt)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user