JavaScript build tools were designed with single-page applications in mind, and, by and large, they work very well for that purpose. Finsemble, however, is designed with multiple windows in mind.
Because Finsemble is working at several levels of the application stack, the build process uses two types of tools:
Gulp is one of many JavaScript task runners available. We're using version 4.0, which allows for tasks to be run in series or in parallel. It's currently in alpha, but we've found that it's generally reliable for what we're doing. Gulp does several things for you:
Webpack is one of the best module bundlers currently available. In the Finsemble build process, Webpack is responsible for:
When a channel handler runtime is launched via npm run dev
or via an installed application icon, the application
start-up begins. Locally, it follows the build process. Remotely, it all happens when the user double-clicks the icon.
The process flows like this:
startup_app
. The Service Manager loads within a hidden window.
To better understand what happens after start-up, proceed on to Configuration.
To understand how Finsemble solves the problem of handling many-window applications, proceed on to Process Management.
To learn more about events that happen once the application is started, check out Lifecycle Events.
For more on modules, why you should use them, and what they are, see this blog post.