komp v1.0.9
Komp
Create files with boilerplate content
Options
$komp --help
Usage: komp [options]
Options:
  -T, --template <name> File base template
  -v, --verbose         Verbose mode
  -h, --help            output usage information
  -V, --version         output the version number
  
Commands:
  new|n <name>  Create new boilerplate folder/files
  init|i        Create config file and template folder  Install
npm -g install kompConfig defaults
The scripts creates a configuration file (.komp) and a directory (comp-templates) with template(s) at project root folder (same as package.json) called .komp to set defaults values. If you want to create new templates you have to put inside rootcomp-templates folder. Notice how the base template is created at root/comp-templates/base
###.komp
Is a JSON format config file with:
- baseName. This name will be replaced by the name the user enter in the command.
- basePath: A default directory where the component folder will be created.
- template. This is the name of the folder with the boilerplate files. This name also will replaced by the name user enter int the command.
{
    "baseName": "component",
    "basePath": ""
    "template": "base",
}With this content in .komp file the komp command will search for this structure:
comp-templates (komp will create this folder)
└─ base
    ├─ component.html
    ├─ component.twig
    ├─ component.js
    ├─ component.json
    ├─ component.yaml
    ├─ component.md
    ├─ component.css
    └─ component.scssKomp ignore the files that finally don't exist in your HD.
You can have more than one "template" in your HD, for example.
comp-templates (komp will create this folder)
├─ base
│  ├─ component.html
│  ├─ component.js
│  ├─ component.json
│  ├─ component.yaml
│  ├─ README.md
│  ├─ component.css
│  └─ component.scss
│
├─ @fractal
│  ├─ component.njk
│  ├─ config.yaml
│  └─ component.css
│
└─ @simple
   └─ component.njkTo create a new component using a differente template use --template flag
komp new button --template fractalThis will create a folder and files in your HD like this:
Note that komp will respect the EXTRA character you put in the template folders and files. If you call to the fractal template, komp will looking for a folder that containt fractal in the name, and then let the extra char ( in this case the @ ). This way you can boilerplate the names too.
button
└─ @button
   ├─ button.njk
   ├─ config.yaml
   └─ button.scssExamples
# Create .komp config file
komp init# Create button component with default template
komp new button# Create myCard component using the card template
komp new myCard --template card