## CA
> A tool for building web app without painful configuration

## Quick Start

```bash
ca new react demo -d
# It will create a react app named demo and setup configuration for you
# no more webpack/babel/eslint/others configuration is need.
```

## Install

using npm:

```bash
npm install --global @cloudux/ca
```

After installation, you can use ```ca``` in your command line


## How to use

### Create a new app

* Create a React app: ```ca new react react_app```

* Create a Vue app: ```ca new vue vue_app```

* Create a simple web app(no mvvm framework default): ```ca new es6 es6_app```

* Create a es5 app: ```ca new es5 es5_app```

* Create a app and auto run git initialization and start dev mode: ```ca new vue demo -d -g```

Then, ```cd``` into your app directory, and run ```npm run dev```, it just work:) 

Run ```npm run build``` will output production ready files to ```./dist``` folders.

Run ```npm run generate-eslint-config``` will generate custom ```./.eslintrc``` file current folder. 

Run ```npm run generate-config``` will generate all config files in current folder, then you can change it whatever you like. 

The created app only contains dependencies it really need(such as react/vue.js/etc), no more webpack/eslint/babel/etc dev dependencies any more.

Life is too short, goodbye to endless configuration. 


### Run a app

* Run a Vue app: ```ca run vue```

* Run a React app: ```ca run react```

* Run a es6 app: ```ca run es6```

* Run a es5 app: ```ca run es5```

* Default entry point for app is ```src/index.js```, if this is not the case for you, you can pass entry point to run command like this: ```ca run vue ./index.js```


### Build a app

* Build a Vue app: ```ca build vue```

* Build a React app: ```ca build react```

* Build a ES6 app: ```ca build es6```

* Build a ES5 app: ```ca build es5```

* Default entry point for app is ```src/index.js```, if this is not the case for you, you can pass entry point to run command like this: ```ca build vue ./index.js```

* The build files will output to ```./dist``` folders


### Generate Custom ESLint configuration files

* ```ca generate vue eslint```

Then ```ca``` will generate a ```.eslintrc``` file in current project's folder, then change the config if you like. However, don't forget to add all the config's dependencies to dev dependencies.


### Generate Custom configuration files

* ```ca generate vue all```

Then ```ca``` will generate all config files in current project's folder, then change the config if you like. However, don't forget to add all the config's dependencies to dev dependencies.
