Support Flow static type checking in Vite
npm install @bunchtogether/vite-plugin-flow --save-dev
or
yarn add @bunchtogether/vite-plugin-flow --dev
import { flowPlugin, esbuildFlowPlugin } from '@bunchtogether/vite-plugin-flow';
export default {
optimizeDeps: {
esbuildOptions: {
plugins: [esbuildFlowPlugin()]
}
},
plugins: [
flowPlugin()
]
}
Create a Vite plugin object
-
options
Object? 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
-
filter
RegExp Regular expression matching the path a files to be processed (optional, default/\.(flow|jsx?)$/
) -
loaderFunction
Function Function that accepts the file path and returns the esbuild loader type (optional, default(path)=>(/\.jsx$/.test(path)?'jsx':'js')
) -
flowOptions
Object Options to pass to flow-remove-types (optional, default{all:false,pretty:false,ignoreUninitializedFields:false}
)flowOptions.all
boolean If true, bypasses looking for an @flow pragma comment before parsing. (optional, defaultfalse
)flowOptions.pretty
boolean If true, removes types completely rather than replacing with spaces. (optional, defaultfalse
)flowOptions.ignoreUninitializedFields
boolean 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