mantrajs / mantra-cli

Command line interface for building Meteor apps with Mantra
MIT License
135 stars 34 forks source link
mantra meteor

Mantra CLI

Build Status

A command line interface for developing Meteor apps using Mantra.

Installation

npm install -g mantra-cli

See RELEASE NOTE if you are upgrading and wondering what has changed in the latest version.

Meteor version 1.3 or higher needs to be present in your machine to create and run apps with mantra-cli.

Documentation

The available commands are:

Currently, CLI expects you to be in the app root directory.


mantra create [path]

alias: c

Create a Meteor application using Mantra spec under path.

It performs the following tasks:

Options

Log the output of the scripts in the console, rather than silencing them.

Create storybook files, and save the configuration to the generated mantra_cli.yaml.


mantra generate [type] [name]

alias: g

Generate a file of type and name specified name.

type

Possible values are:

By default, a stateless component is generated. By using --use-class option (alias -c), you can generate a ES2015 class extending React.Component.

mantra g component core:user_list -c

Mantra-cli can also generate a storybook-file for each component. See the configuration section for more info.

Generates a container and its corresponding component.

Use --schema option (alias -s) to specify the schema solution to use for your Mongo collections. Currently, you can specify collection2, and astronomy.

mantra g collection books -s collection2

For action, component, and container, tests will also be generated.

name

If the type is one of action, component, or container, the name should follow the format moduleName:entityName. This is because Mantra is modular on the client side, and all files of those types belong to a module.

Example

mantra generate component core:posts
mantra generate publication users
mantra generate method comments

Automatic update to index.js

For action, collection, method, and publication, the command automatically inserts import and export statements to the relevant index.js file.


mantra destroy [type] [name]

alias: d

This command removes files.

Destroys all files that its counterpart mantra generate command would generate. You can provide all types supported by the generate command.


Customization

Mantra-CLI allows you to easily customize its behaviors. Currently, you can customize:

You may customize Mantra-CLI by editing mantra_cli.yaml on the root directory of your project. Please open an issue with suggestions for more customization.

The configuration is designed to be similar to [mantrajs-atom-package] (https://github.com/mantrajs/mantrajs-atom-package). The long term goal is to make configuration interchangeable.

tab size

e.g.

tabSize: 4

templates

e.g.

templates:
  - name: 'component'
    text: |
      import React from 'react';
      const <%= componentName %> = ({}) => {
        return (
          <div>
            <%= componentName %>
          </div>
        );
      }

Individual template configurations must have name, and text.

name

text

Internally, this template will be evaluated by lodash's template function to dynamically insert variables. You need to pass variable names surrounded by <%= and %>.

If you pass insufficient variable names, the CLI will throw you an error.

Variables needed for each templates are:

component

container

method

publication

e.g.

storybooks

Generate stories for Kadira Storybooks with generation of a new component.

storybook: true

Upgrade Guide

Upgrading to 0.4.x

Contributor Guide

License

MIT