Installable

Installable provides a base for Javascript apps with a npm based plugin manager.
It provides the conventions (and templates) for the apps and plugins and manages the installation process of the plugins via a HTTP API.

Installable enforces some conventions. It requires express for the back end and webpack for the front end.
It uses gulp as a task runner and focuses on Single Page Apps.

Installation

npm install -g installable

Usage

$ installable -h

Usage: installable [options] [command]

Commands:

plugin <plugin-name> <application-name>

Create new plugin

app <application-name>

Create new application

Options:

-h, --help output usage information

-V, --version output the version number

-s, --skip-npm Skip npm check for name

Create a new Installable application

$ installable app <application-name>

// creates a skeleton for your app

$ cd <application-name>

$ npm install

$ npm install -g gulp

$ gulp // or gulp tdd

Create a plugin for an Installable application

$ installable plugin <plugin-name> <application-name>

// creates a skeleton for your plugin

$ cd <application-name>-plugin-<plugin-name>

$ npm install

$ npm install -g gulp

$ gulp // or gulp tdd

Plugins

Plugins are npm modules and can add functionality to both ends (front/back).

The API that the plugins interact with the front end application is left to the author to define.

In the backend the plugins can register scoped routes based on the plugin name and share properties of the express app.

Visit /installable path on your app to use the default plugin manager. This is just an example implementation.

Notes

This is still a work in progress (pre alpha) and currently lacks many must-have features for a complete plugin manager.

It can be used as a boiler template app generator for express, webpack, less, gulp, mocha, karma and istanbul. Just remove the installable dependency from the app template and start the express server yourself.