Support Flow static type checking in Vite
npm install @bunchtogether/vite-plugin-flow --save-devor
yarn add @bunchtogether/vite-plugin-flow --devimport { flowPlugin, esbuildFlowPlugin } from '@bunchtogether/vite-plugin-flow';
export default {
optimizeDeps: {
esbuildOptions: {
plugins: [esbuildFlowPlugin()]
}
},
plugins: [
flowPlugin()
]
}Create a Vite plugin object
-
optionsObject? Filter options (optional, default{include:/\.(flow|jsx?)$/,exclude:/node_modules/,flow:{all:false,pretty:false,ignoreUninitializedFields:false}})options.include(string | Regexp | Array<(string | Regexp)>) Strings and/or regular expressions matching file paths to include (optional, default/\.(flow|jsx?)$/)options.exclude(string | Regexp | Array<(string | Regexp)>) Strings and/or regular expressions matching file paths to exclude (optional, default/node_modules/)
Returns VitePlugin Returns esbuild plugin object
Create an esbuild plugin object
-
filterRegExp Regular expression matching the path a files to be processed (optional, default/\.(flow|jsx?)$/) -
loaderFunctionFunction Function that accepts the file path and returns the esbuild loader type (optional, default(path)=>(/\.jsx$/.test(path)?'jsx':'js')) -
flowOptionsObject Options to pass to flow-remove-types (optional, default{all:false,pretty:false,ignoreUninitializedFields:false})flowOptions.allboolean If true, bypasses looking for an @flow pragma comment before parsing. (optional, defaultfalse)flowOptions.prettyboolean If true, removes types completely rather than replacing with spaces. (optional, defaultfalse)flowOptions.ignoreUninitializedFieldsboolean If true, removes uninitialized class fields (foo;,foo: string;) completely rather than only removing the type. THIS IS NOT SPEC COMPLIANT! Instead, usedeclare foo: string;for type-only fields. (optional, defaultfalse)
Returns EsbuildPlugin Returns esbuild plugin object