Bundle NoFlo graphs, components with esbuild bundler to a single javascript file without any other dependencies except for builtin node libs.
It will replace the default noflo component loader and add support for requiring .fbp
files.
This is based on the existing plugin for webpack and the fbp-loader.
$ npm install --save-dev esbuild-plugin-noflo
import esbuild from 'esbuild'
import nofloPlugin from 'esbuild-plugin-noflo'
await esbuild.build(
{
entryPoints: ['./test-build-input'],
outfile: 'test-build-out.js',
plugins: [
nofloPlugin(
{
// Only include components used by this graph
// Set to NULL if you want all installed components
graph: 'myproject/GraphName',
runtime: ['noflo','noflo-node']
}
)
],
}
)
Only the components need by this Graph will be included.
Type: String
Default: null (all components will be included!)
Note: If you need to support building on Windows, the
test
above must be adapted to the\
path separator. Use([\\]+|\/)
instead of\/
.
Include the original component sources
Type: Boolean
Default: false
More info about esbuild namespaces
The directory which is the used to search for components.
Type: String
Default: process.cwd()
current directory
Type: Object
Default: {
runtimes: ['noflo'],
discover: true,
recursive: true,
}
Type: Array
Default: ['noflo']
Note: if you run the result on node and use native libs (e.g. filesystem) you need to add ['noflo','noflo-node']
valid values:
- noflo-browser for browser-based components
- noflo-nodejs for Node.js components
- noflo-gnome for GNOME desktop components
- microflo for microcontroller components
A complete example on how to create a wrapper to run you graph on the nodejs commandline can be found in the git repository.
- extract libs from this bundler plugin and from noflo-component-loader
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (git checkout -b feature/AmazingFeature)
- Commit your Changes (git commit -m 'Add some AmazingFeature')
- Push to the Branch (git push origin feature/AmazingFeature)
- Open a Pull Request
Distributed under the "bsd-2-clause" License. See LICENSE.txt for more information.