From 2b81be6c2908d812b5b40356130e3caf8a3a179f Mon Sep 17 00:00:00 2001 From: Michel Weststrate Date: Wed, 8 Dec 2021 04:25:28 -0800 Subject: [PATCH] Cleanup plugin watch folders Summary: Watch folders weren't updated for cross plugin/flipper boundaries that have recently been removed Fix changes in several source folders not being picked up when fast refresh wasn't enabled Reviewed By: passy, aigoncharov Differential Revision: D32626139 fbshipit-source-id: 2c830ec8154ff859ce1e3ee101e5963162d2e0a2 --- desktop/scripts/get-app-watch-folders.ts | 17 ++--------------- desktop/scripts/start-dev-server.ts | 12 +++++++++++- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/desktop/scripts/get-app-watch-folders.ts b/desktop/scripts/get-app-watch-folders.ts index a6605e5c6..76f7cf645 100644 --- a/desktop/scripts/get-app-watch-folders.ts +++ b/desktop/scripts/get-app-watch-folders.ts @@ -9,25 +9,12 @@ import fs from 'fs-extra'; import pFilter from 'p-filter'; -import path from 'path'; import {getWatchFolders} from 'flipper-pkg-lib'; -import {appDir, publicPluginsDir, fbPluginsDir} from './paths'; - -/** - * Flipper references code from below plugins directly. Such directly referenced plugins - * and their dependencies should be added as watch folders so Metro bundled can resolve them. - */ -const pluginsReferencedDirectlyFromFlipper = [ - path.join(publicPluginsDir, 'navigation'), - path.join(fbPluginsDir, 'mobileconfig'), - path.join(fbPluginsDir, 'watch'), -]; +import {appDir} from './paths'; export default async function getAppWatchFolders() { const getWatchFoldersResults = await Promise.all( - [appDir, ...pluginsReferencedDirectlyFromFlipper].map((dir) => - getWatchFolders(dir), - ), + [appDir].map((dir) => getWatchFolders(dir)), ); const watchFolders = ([] as string[]).concat(...getWatchFoldersResults); return pFilter( diff --git a/desktop/scripts/start-dev-server.ts b/desktop/scripts/start-dev-server.ts index 98e40c22b..8fb2abec3 100644 --- a/desktop/scripts/start-dev-server.ts +++ b/desktop/scripts/start-dev-server.ts @@ -244,6 +244,8 @@ async function startMetroServer(app: Express, server: http.Server) { const watchFolders = (await getAppWatchFolders()).concat( await getPluginSourceFolders(), ); + console.log('Source dirs\n\t' + watchFolders.join('\n\t')); + const baseConfig = await Metro.loadConfig(); const config = Object.assign({}, baseConfig, { projectRoot: rootDir, @@ -339,7 +341,15 @@ async function startWatchChanges(io: socketIo.Server) { const watchman = new Watchman(path.resolve(__dirname, '..')); await watchman.initialize(); await Promise.all( - ['app', 'pkg', 'doctor', 'plugin-lib', 'flipper-plugin'].map((dir) => + [ + 'app', + 'pkg', + 'doctor', + 'plugin-lib', + 'flipper-plugin', + 'flipper-common', + 'flipper-ui-core', + ].map((dir) => watchman.startWatchFiles( dir, () => {