UNPKG

create-electrojet

Version:

Setup Modern Javascript Applications with a single command

107 lines (70 loc) 3.69 kB
<div align="center"> <h1>ELECTROJET CLI</h1> <a href="https://badge.fury.io/js/create-electrojet"><img src="https://badge.fury.io/js/create-electrojet.svg" alt="npm version" height="18"></a> <a href="#badge"> <img alt="code style: prettier" src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square"> </a> <a href="https://standardjs.com"> <img alt="coding style: standard" src="https://img.shields.io/badge/code_style-standard-brightgreen.svg"> </a> </div> ## Usage ``` npm init electrojet <project-name> ``` The CLI will walk you through a set of options for you to select the template/starter. ### Options #### 1. Template This option allows you to select the template beforehand. ``` npm init electrojet <project-name> --template=electron ``` [See list of currently available templates](https://github.com/agneym/create-electrojet#list-of-available-templates) #### 2. Starter 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?](https://github.com/agneym/create-electrojet#) #### How are they different? 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. ## How do I add _______ to the configuration? 1. 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. [List of Plugins](https://github.com/agneym/create-electrojet#list-of-plugins) 2. 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: ```js 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](https://github.com/survivejs/webpack-merge#mergesmartconfiguration-configuration) into running configuration. ## List of available templates 1. [Electron](https://github.com/agneym/create-electrojet/tree/master/packages/electron) 2. [Carlo](https://github.com/agneym/create-electrojet/tree/master/packages/carlo) 3. [Phaser CE](https://github.com/agneym/create-electrojet/tree/master/packages/phaser-ce) ## List of plugins 1. [SASS](https://github.com/agneym/create-electrojet/tree/master/plugins/sass) 2. [LESS](https://github.com/agneym/create-electrojet/tree/master/plugins/less) ## How do I build a CLI for my favorite technology? 1. Install `@electrojet/core` for defaults in building Webpages. 2. Use [Node APIs]() for `@electrojet/core` to extend the start and build scripts. 3. If you are building a Template (and not a starter, [see difference]), give us a PR to include in electrojet templates. See [Electrojet Carlo]() for an example. ## How do I customise it to with Bitbucket / Gitlab Templates > Docs in progress