mirror of
				https://github.com/ZetaKebab/quartz.git
				synced 2025-11-03 22:49:47 +00:00 
			
		
		
		
	fix(fast rebuild): call only required emitters, don't always copy assets (#845)
* fix(fast rebuild): call only required emitters, don't always copy assets * Type function
This commit is contained in:
		@@ -203,8 +203,9 @@ async function partialRebuildFromEntrypoint(
 | 
			
		||||
          const emitterGraph =
 | 
			
		||||
            (await emitter.getDependencyGraph?.(ctx, processedFiles, staticResources)) ?? null
 | 
			
		||||
 | 
			
		||||
          // emmiter may not define a dependency graph. nothing to update if so
 | 
			
		||||
          if (emitterGraph) {
 | 
			
		||||
          // only update the graph if the emitter plugin uses the changed file
 | 
			
		||||
          // eg. Assets plugin ignores md files, so we skip updating the graph
 | 
			
		||||
          if (emitterGraph?.hasNode(fp)) {
 | 
			
		||||
            // merge the new dependencies into the dep graph
 | 
			
		||||
            dependencies[emitter.name]?.updateIncomingEdgesForNode(emitterGraph, fp)
 | 
			
		||||
          }
 | 
			
		||||
 
 | 
			
		||||
@@ -4,6 +4,13 @@ import path from "path"
 | 
			
		||||
import fs from "fs"
 | 
			
		||||
import { glob } from "../../util/glob"
 | 
			
		||||
import DepGraph from "../../depgraph"
 | 
			
		||||
import { Argv } from "../../util/ctx"
 | 
			
		||||
import { QuartzConfig } from "../../cfg"
 | 
			
		||||
 | 
			
		||||
const filesToCopy = async (argv: Argv, cfg: QuartzConfig) => {
 | 
			
		||||
  // glob all non MD files in content folder and copy it over
 | 
			
		||||
  return await glob("**", argv.directory, ["**/*.md", ...cfg.configuration.ignorePatterns])
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export const Assets: QuartzEmitterPlugin = () => {
 | 
			
		||||
  return {
 | 
			
		||||
@@ -15,7 +22,7 @@ export const Assets: QuartzEmitterPlugin = () => {
 | 
			
		||||
      const { argv, cfg } = ctx
 | 
			
		||||
      const graph = new DepGraph<FilePath>()
 | 
			
		||||
 | 
			
		||||
      const fps = await glob("**", argv.directory, ["**/*.md", ...cfg.configuration.ignorePatterns])
 | 
			
		||||
      const fps = await filesToCopy(argv, cfg)
 | 
			
		||||
 | 
			
		||||
      for (const fp of fps) {
 | 
			
		||||
        const ext = path.extname(fp)
 | 
			
		||||
@@ -30,9 +37,8 @@ export const Assets: QuartzEmitterPlugin = () => {
 | 
			
		||||
      return graph
 | 
			
		||||
    },
 | 
			
		||||
    async emit({ argv, cfg }, _content, _resources): Promise<FilePath[]> {
 | 
			
		||||
      // glob all non MD/MDX/HTML files in content folder and copy it over
 | 
			
		||||
      const assetsPath = argv.output
 | 
			
		||||
      const fps = await glob("**", argv.directory, ["**/*.md", ...cfg.configuration.ignorePatterns])
 | 
			
		||||
      const fps = await filesToCopy(argv, cfg)
 | 
			
		||||
      const res: FilePath[] = []
 | 
			
		||||
      for (const fp of fps) {
 | 
			
		||||
        const ext = path.extname(fp)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user