From 25b57f3e8085a8d2eeb2f2a0ea05eba8721aac32 Mon Sep 17 00:00:00 2001 From: Spencer Date: Thu, 21 May 2020 02:20:14 -0700 Subject: [PATCH] [kbn/optimizer] require fsevents on macos (#67147) --- packages/kbn-optimizer/src/run_optimizer.ts | 24 +++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/packages/kbn-optimizer/src/run_optimizer.ts b/packages/kbn-optimizer/src/run_optimizer.ts index ab12cc679bc629..37260e942717b9 100644 --- a/packages/kbn-optimizer/src/run_optimizer.ts +++ b/packages/kbn-optimizer/src/run_optimizer.ts @@ -39,10 +39,26 @@ export type OptimizerUpdate = Update; export type OptimizerUpdate$ = Rx.Observable; export function runOptimizer(config: OptimizerConfig) { - return Rx.defer(async () => ({ - startTime: Date.now(), - cacheKey: await getOptimizerCacheKey(config), - })).pipe( + return Rx.defer(async () => { + if (process.platform === 'darwin') { + try { + require.resolve('fsevents'); + } catch (error) { + if (error.code === 'MODULE_NOT_FOUND') { + throw new Error( + '`fsevents` module is not installed, most likely because you need to follow the instructions at https://github.com/nodejs/node-gyp/blob/master/macOS_Catalina.md and re-bootstrap Kibana' + ); + } + + throw error; + } + } + + return { + startTime: Date.now(), + cacheKey: await getOptimizerCacheKey(config), + }; + }).pipe( mergeMap(({ startTime, cacheKey }) => { const bundleCacheEvent$ = getBundleCacheEvent$(config, cacheKey).pipe( observeOn(Rx.asyncScheduler),