Skip to content

aheissenberger/esbuild-plugin-noflo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

esbuild-plugin-noflo

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.

Install

$ npm install --save-dev esbuild-plugin-noflo

Usage

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'] 
                }
            )
        ],
    }
)

Options

graph

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 \/.

debug

Include the original component sources

Type: Boolean Default: false

More info about esbuild namespaces

baseDIR

The directory which is the used to search for components.

Type: String Default: process.cwd() current directory

manifest

Type: Object Default: { runtimes: ['noflo'], discover: true, recursive: true, }

runtimes

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

more infos

Example Build setup

A complete example on how to create a wrapper to run you graph on the nodejs commandline can be found in the git repository.

Roadmap

  • extract libs from this bundler plugin and from noflo-component-loader

Contribution

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Built With

License

Distributed under the "bsd-2-clause" License. See LICENSE.txt for more information.

About

NoFlo Component Loader generator for esbuild

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published