Summary: This diff adds `types` fields on the compiler config for every project. This way we can make sure that for example node types and packages are not available in flipper-ui-core. Without an explicit types field, all types would be shared between all packages, and implicitly included into the compilation of everything. For the same reason `types/index.d.ts` has been removed, we want to be intentional on which types are being used in which package. This diff does most of the work, the next diff will fine tune the globals, and do some further cleanup. As an alternative solution I first tried a `nohoist: **/node_modules/types/**` and make sure every package list explicitly the types used in package json, which works but is much more error prone, as for example two different react types versions in two packages will cause the most unreadable compiler error due to the types not being shared and not literally the same. Reviewed By: lawrencelomax Differential Revision: D33124441 fbshipit-source-id: c2b9d768f845ac28005d8331ef5fa1066c7e4cd7
flipper-pkg
flipper-pkg is a 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.48.0 darwin-x64 node-v12.15.0
$ flipper-pkg --help [COMMAND]
USAGE
$ flipper-pkg COMMAND
...
Commands
flipper-pkg bundle [DIRECTORY]flipper-pkg checksum [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.
OPTIONS
--production Force env.NODE_ENV=production, enable minification and disable producing source maps.
--watch Watch for plugin source code and bundle it after every change.
EXAMPLE
$ flipper-pkg bundle path/to/plugin
See code: src/commands/bundle.ts
flipper-pkg checksum [DIRECTORY]
computes the total checksum of all the package files
USAGE
$ flipper-pkg checksum [DIRECTORY]
ARGUMENTS
DIRECTORY [default: .] Path to plugin package directory. Defaults to the current working directory.
EXAMPLE
$ flipper-pkg checksum path/to/plugin
See code: src/commands/checksum.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.
--production Force env.NODE_ENV=production, enable minification and disable producing source maps.
EXAMPLE
$ flipper-pkg pack path/to/plugin
See code: src/commands/pack.ts