Make flipper-server stand-alone servable

Summary:
This diff makes flipper-server stand-alone servable as a single package.

It basically works as follows:

- (default) plugins are build as usually into static folder
- static folder is copied into flipper-server/static (as far as relevant)
- `flipper-server/src/index.tsx` is bundled into `flipper-server/dist/index.js`
- `flipper-ui-browser/src/index.tsx` is bundled into `flipper-server/static/bundle.js`

If flipper-server is started without the `--bundler` config, the `bundle.js` will be served statically, rather than starting up the Metro bundler with all the typical transforms (in a distributed version of the package those all wouldn't resolve)

Things to be done in next diffs:

* make sure plugins actually load in the non bundled setup
* make sure flipper-server gets published properly
* make sure build is created as part of CI

At the end of this stack, running `npx flipper-server` on any machine should basically be a viable approach to get flipper up and running locally :)

Reviewed By: nikoant

Differential Revision: D33171107

fbshipit-source-id: 4af8ac2699467a0b55283fe084640482700744c2
This commit is contained in:
Michel Weststrate
2021-12-24 02:15:25 -08:00
committed by Facebook GitHub Bot
parent d48fbd8e50
commit 6ff4abbc67
13 changed files with 515 additions and 84 deletions

View File

@@ -5,6 +5,7 @@
"description": "Standalone nodeJS based Flipper server",
"repository": "facebook/flipper",
"main": "server.js",
"bin": "server.js",
"flipperBundlerEntry": "src",
"license": "MIT",
"bugs": "https://github.com/facebook/flipper/issues",
@@ -22,7 +23,9 @@
"flipper-common": "0.0.0",
"flipper-pkg-lib": "0.0.0",
"flipper-server-core": "0.0.0",
"metro": "^0.66.2"
"metro": "^0.66.2",
"open": "^8.3.0",
"yargs": "^17.0.1"
},
"peerDependencies": {},
"scripts": {
@@ -31,7 +34,8 @@
"prepack": "yarn reset && yarn build"
},
"files": [
"dist/**/*"
"dist/**/*",
"static/**/*"
],
"homepage": "https://github.com/facebook/flipper",
"keywords": [