Skip to content

빌드 중 공유 플러그인

Feedback

환경 API 피드백 토론 에서 피드백을 제공하십시오

빌드 중에 공유 플러그인을 참조하십시오.

범위에 영향을 미칩니다 : Vite Plugin Authors

Future Default Change

builder.sharedConfigBuild v6.0 에서 처음 소개되었습니다. 플러그인이 공유 구성과 함께 작동하는 방법을 확인하도록 설정할 수 있습니다. 플러그인 생태계가 준비되면 향후 전공의 기본값 변경에 대한 피드백을 찾고 있습니다.

동기 부여

Dev를 정렬하고 플러그인 파이프 라인을 빌드하십시오.

마이그레이션 가이드

환경에서 플러그인을 공유하려면 플러그인 상태를 현재 환경에서 키워야합니다. 다음 양식의 플러그인은 모든 환경에서 변환 된 모듈의 수를 계산합니다.

js
function CountTransformedModulesPlugin() {
  let transformedModules
  return {
    name: 'count-transformed-modules',
    buildStart() {
      transformedModules = 0
    },
    transform(id) {
      transformedModules++
    },
    buildEnd() {
      console.log(transformedModules)
    },
  }
}

대신 각 환경에 대한 변환 된 모듈 수를 계산하려면지도를 유지해야합니다.

js
function PerEnvironmentCountTransformedModulesPlugin() {
  const state = new Map<Environment, { count: number }>()
  return {
    name: 'count-transformed-modules',
    perEnvironmentStartEndDuringDev: true,
    buildStart() {
      state.set(this.environment, { count: 0 })
    }
    transform(id) {
      state.get(this.environment).count++
    },
    buildEnd() {
      console.log(this.environment.name, state.get(this.environment).count)
    }
  }
}

이 패턴을 단순화하려면 Vite는 perEnvironmentState 도우미를 내보내는 것을 내 보냅니다.

js
function PerEnvironmentCountTransformedModulesPlugin() {
  const state = perEnvironmentState<{ count: number }>(() => ({ count: 0 }))
  return {
    name: 'count-transformed-modules',
    perEnvironmentStartEndDuringDev: true,
    buildStart() {
      state(this).count = 0
    }
    transform(id) {
      state(this).count++
    },
    buildEnd() {
      console.log(this.environment.name, state(this).count)
    }
  }
}

Released under the MIT License. (dev)