npm init electrojet <project-name>
The CLI will walk you through a set of options for you to select the template/starter.
This option allows you to select the template beforehand.
npm init electrojet <project-name> --template=electron
See list of currently available templates
This option allows you to select a starter beforehand.
npm init electrojet <project-name> --starter=<User>/<RepoName>
This format works for repositories hosted on github.
How do I customise it to work with Gitlab / Bitbucket?
A template offers a default configuration for a given technology. For eg. selecting electron as a template, gives you a package with Electron, Javascript, CSS and HTML.
A starter is much more customised and opiniated in it's design. For example, a starter may have Electron with React and Redux installed and setup for you to start working.
See announcement blog.
As a User:
😃 Get started without worrying about configuration
😋 Learn configuration for one CLI instead of a million ones
As a package owner:
🔧 You only have to manage the package extension, we will take care of the CLI and core.
🚀 The user might have Electrojet CLI installed globally/cached. Also, they might know their way around, so it's lesser docs.
☝️ Easier updates when extending the core package
-
Add a plugin
There are plugins available for Electrojet that can add functionality to existing configurations. You can add them to
electrojet.config.js
plugins array. -
Roll your own
If you can't find a plugin, you can always write one.
In your plugins directory, add a function that takes the format:
module.exports = {
plugins: [
{
resolve: function (
env, // Current running env, either "dev" or "prod". Allows you to create multiple configs for development and production
context, // The current configuration, mutating this won't help
options, // options from the user, you don't need this for writing custom config
) {
return customConfig; // Return custom configuration
}
}
]
}
The webpack configuration object that you return from the resolve functions gets shallow merged into running configuration.
- Install
@electrojet/core
for defaults in building Webpages. - Use Node APIs for
@electrojet/core
to extend the start and build scripts. - If you are building a Template (and not a starter, see difference), give us a PR to include in electrojet templates.
See any of the packages for an example.
- Clone the repository
- Run following command to install all dependencies
lerna bootstrap
- Make changes in your branch
- Run tests with:
lerna run test
- Give us a PR
Docs in progress