Summary: Added a watch mode to the bundle command of flipper plugins. This makes it easy to test develop plugins locally, even when you are using a production build of flipper, which lowers the barrier of developing / fixing plugins. opted for `fs.watch` over watchman to avoid some overengineering: 1. pkg / pkg-lib don't have the watchman utilities that would be needed for this. I wasn't sure if I could move those over from `static` without breaking the bootstrapping process 2. watchman is often a nuisance on non FB machines that aren't set up for it. fs.watch in contrast doesn't have any further dependencies or setup requirements, and is much more likely to work ootb. 3. since we watch only the `src` folder we don't really need the watchman optimizations. (so for a package.json change people would have to restart, but I don't think that is much of a problem). Reviewed By: jknoxville Differential Revision: D21523814 fbshipit-source-id: b1de72b7d01c6fc50cb8ce5709f54f8019eb89e4
flipper-pkg
flipper-pkg is a work-in-progress tool for bundling and publishing
Flipper plugins.
Usage
$ npm install -g flipper-pkg
$ flipper-pkg COMMAND
running command...
$ flipper-pkg (-v|--version|version)
flipper-pkg/0.40.2 darwin-x64 node-v12.15.0
$ flipper-pkg --help [COMMAND]
USAGE
$ flipper-pkg COMMAND
...
Commands
flipper-pkg bundle [DIRECTORY]flipper-pkg help [COMMAND]flipper-pkg init [DIRECTORY]flipper-pkg lint [DIRECTORY]flipper-pkg migrate [DIRECTORY]flipper-pkg pack [DIRECTORY]
flipper-pkg bundle [DIRECTORY]
transpiles and bundles plugin
USAGE
$ flipper-pkg bundle [DIRECTORY]
ARGUMENTS
DIRECTORY [default: .] Path to plugin package directory for bundling. Defaults to the current working directory.
EXAMPLE
$ flipper-pkg bundle path/to/plugin
See code: src/commands/bundle.ts
flipper-pkg help [COMMAND]
display help for flipper-pkg
USAGE
$ flipper-pkg help [COMMAND]
ARGUMENTS
COMMAND command to show help for
OPTIONS
--all see all commands in CLI
See code: @oclif/plugin-help
flipper-pkg init [DIRECTORY]
initializes a Flipper desktop plugin template in the provided directory
USAGE
$ flipper-pkg init [DIRECTORY]
ARGUMENTS
DIRECTORY [default: .] Path to the directory where the plugin package template should be initialized. Defaults to the
current working directory.
EXAMPLE
$ flipper-pkg init path/to/plugin
See code: src/commands/init.ts
flipper-pkg lint [DIRECTORY]
validates a plugin package directory
USAGE
$ flipper-pkg lint [DIRECTORY]
ARGUMENTS
DIRECTORY [default: .] Path to plugin package directory for linting. Defaults to the current working directory.
EXAMPLE
$ flipper-pkg lint path/to/plugin
See code: src/commands/lint.ts
flipper-pkg migrate [DIRECTORY]
migrates a Flipper desktop plugin to the latest version of specification
USAGE
$ flipper-pkg migrate [DIRECTORY]
ARGUMENTS
DIRECTORY [default: .] Path to the plugin directory. Defaults to the current working directory.
OPTIONS
--no-dependencies Do not add or change package dependencies during migration.
--no-scripts Do not add or change package scripts during migration.
EXAMPLE
$ flipper-pkg migrate path/to/plugin
See code: src/commands/migrate.ts
flipper-pkg pack [DIRECTORY]
packs a plugin folder into a distributable archive
USAGE
$ flipper-pkg pack [DIRECTORY]
ARGUMENTS
DIRECTORY [default: .] Path to plugin package directory to pack. Defaults to the current working directory.
OPTIONS
-o, --output=output [default: .] Where to output the package, file or directory. Defaults to the current working
directory.
EXAMPLE
$ flipper-pkg pack path/to/plugin
See code: src/commands/pack.ts