Reporter
A plugin type: Listen to events of the build
Reporters receive events as they happen and can output to stdout/stderr, or perform other actions.
import {Reporter} from '@parcel/plugin';
export default new Reporter({
  async report({ event: { type, ... } }) {
    // ...
  }
});
¶ Relevant API
ProgressLogEvent parcel/packages/core/types/index.js:1199
type ProgressLogEvent = {|
  +type: 'log',
  +level: 'progress',
  +phase?: string,
  +message: string,
|}
Referenced by:
LogEventDiagnosticLogEvent parcel/packages/core/types/index.js:1210
A log event with a rich diagnostic
type DiagnosticLogEvent = {|
  +type: 'log',
  +level: 'error' | 'warn' | 'info' | 'verbose',
  +diagnostics: Array<Diagnostic>,
|}
Referenced by:
LogEventTextLogEvent parcel/packages/core/types/index.js:1219
type TextLogEvent = {|
  +type: 'log',
  +level: 'success',
  +message: string,
|}
Referenced by:
LogEventLogEvent parcel/packages/core/types/index.js:1228
Type
type LogEvent = ProgressLogEvent | DiagnosticLogEvent | TextLogEvent;
Referenced by:
ReporterEventBuildStartEvent parcel/packages/core/types/index.js:1234
The build just started.
type BuildStartEvent = {|
  +type: 'buildStart',
|}
Referenced by:
ReporterEventWatchStartEvent parcel/packages/core/types/index.js:1242
The build just started in watch mode.
type WatchStartEvent = {|
  +type: 'watchStart',
|}
Referenced by:
ReporterEventWatchEndEvent parcel/packages/core/types/index.js:1250
The build just ended in watch mode.
type WatchEndEvent = {|
  +type: 'watchEnd',
|}
Referenced by:
ReporterEventResolvingProgressEvent parcel/packages/core/types/index.js:1258
A new Dependency is being resolved.
type ResolvingProgressEvent = {|
  +type: 'buildProgress',
  +phase: 'resolving',
  +dependency: Dependency,
|}
Referenced by:
BuildProgressEventTransformingProgressEvent parcel/packages/core/types/index.js:1268
A new Asset is being transformed.
type TransformingProgressEvent = {|
  +type: 'buildProgress',
  +phase: 'transforming',
  +filePath: FilePath,
|}
Referenced by:
BuildProgressEventBundlingProgressEvent parcel/packages/core/types/index.js:1278
The BundleGraph is generated.
type BundlingProgressEvent = {|
  +type: 'buildProgress',
  +phase: 'bundling',
|}
Referenced by:
BuildProgressEventPackagingProgressEvent parcel/packages/core/types/index.js:1287
A new Bundle is being packaged.
type PackagingProgressEvent = {|
  +type: 'buildProgress',
  +phase: 'packaging',
  +bundle: NamedBundle,
|}
Referenced by:
BuildProgressEventOptimizingProgressEvent parcel/packages/core/types/index.js:1297
A new Bundle is being optimized.
type OptimizingProgressEvent = {|
  +type: 'buildProgress',
  +phase: 'optimizing',
  +bundle: NamedBundle,
|}
Referenced by:
BuildProgressEventBuildProgressEvent parcel/packages/core/types/index.js:1306
Type
type BuildProgressEvent = ResolvingProgressEvent | TransformingProgressEvent | BundlingProgressEvent | PackagingProgressEvent | OptimizingProgressEvent;
Referenced by:
ReporterEventBuildSuccessEvent parcel/packages/core/types/index.js:1317
The build was successful.
type BuildSuccessEvent = {|
  +type: 'buildSuccess',
  +bundleGraph: BundleGraph<NamedBundle>,
  +buildTime: number,
  +changedAssets: Map<string, Asset>,
|}
Referenced by:
BuildEvent, ReporterEventBuildFailureEvent parcel/packages/core/types/index.js:1328
The build failed.
type BuildFailureEvent = {|
  +type: 'buildFailure',
  +diagnostics: Array<Diagnostic>,
|}
Referenced by:
BuildEvent, ReporterEventBuildEvent parcel/packages/core/types/index.js:1336
Type
type BuildEvent = BuildFailureEvent | BuildSuccessEvent;
ValidationEvent parcel/packages/core/types/index.js:1342
A new file is being validated.
type ValidationEvent = {|
  +type: 'validation',
  +filePath: FilePath,
|}
Referenced by:
ReporterEventReporterEvent parcel/packages/core/types/index.js:1350
Type
type ReporterEvent = LogEvent | BuildStartEvent | BuildProgressEvent | BuildSuccessEvent | BuildFailureEvent | WatchStartEvent | WatchEndEvent | ValidationEvent;
Referenced by:
ReporterReporter parcel/packages/core/types/index.js:1363
type Reporter = {|
  report({|
    event: ReporterEvent,
    options: PluginOptions,
    logger: PluginLogger,
  |}): Async<void>,
|}