All Projects → mantrajs → Mantra Cli

mantrajs / Mantra Cli

Licence: mit
Command line interface for building Meteor apps with Mantra

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Mantra Cli

Meteor Jalik Ufs
Upload File System for Meteor **DISCONTINUED**
Stars: ✭ 103 (-25.36%)
Mutual labels:  meteor
Meteor Webpack
https://medium.com/@ardatan/meteor-with-webpack-in-2018-faster-compilation-better-source-handling-benefit-from-bc5ccc5735ef
Stars: ✭ 116 (-15.94%)
Mutual labels:  meteor
Meteor Peerdb
Reactive database layer with references, generators, triggers, migrations, etc.
Stars: ✭ 128 (-7.25%)
Mutual labels:  meteor
Meteor
Meteor, the JavaScript App Platform
Stars: ✭ 42,739 (+30870.29%)
Mutual labels:  meteor
Meteor Transactions
App level transactions for Meteor + Mongo
Stars: ✭ 115 (-16.67%)
Mutual labels:  meteor
Big Dipper
A block explorer for Cosmos
Stars: ✭ 119 (-13.77%)
Mutual labels:  meteor
Uniforms
A React library for building forms from any schema.
Stars: ✭ 1,368 (+891.3%)
Mutual labels:  meteor
Minimongoexplorer
Handy Google Chrome extension for reviewing MiniMongo.
Stars: ✭ 131 (-5.07%)
Mutual labels:  meteor
Meteor Timesync
NTP-style time synchronization between server and client, and facilities to use server time reactively in Meteor applications.
Stars: ✭ 115 (-16.67%)
Mutual labels:  meteor
4minitz
4Minitz - Simply a decent free webapp for taking collaborative meeting minutes. (Keywords: Meeting Protocols, Action Items, Open Source). Check it out on our demo server:
Stars: ✭ 125 (-9.42%)
Mutual labels:  meteor
Quick Survey
A tool for quick surveys, try it out. (No longer maintained).
Stars: ✭ 109 (-21.01%)
Mutual labels:  meteor
Workflow
审批王,华炎魔方内置BPM工作流引擎,低代码快速开发平台。
Stars: ✭ 111 (-19.57%)
Mutual labels:  meteor
Meteor Reactive Publish
Reactive publish endpoints
Stars: ✭ 123 (-10.87%)
Mutual labels:  meteor
Meteor Integration
🚀 meteor add apollo
Stars: ✭ 107 (-22.46%)
Mutual labels:  meteor
Wekan Mongodb
Docker: Wekan <=> MongoDB
Stars: ✭ 130 (-5.8%)
Mutual labels:  meteor
Meteor Svelte
Build cybernetically enhanced web apps with Meteor and Svelte.
Stars: ✭ 101 (-26.81%)
Mutual labels:  meteor
Eslint Plugin Meteor
🧐 Meteor specific linting rules for ESLint
Stars: ✭ 117 (-15.22%)
Mutual labels:  meteor
Meteor Service Worker
An universal service worker for meteor apps
Stars: ✭ 132 (-4.35%)
Mutual labels:  meteor
Simpleddp
An easy to use DDP client library
Stars: ✭ 130 (-5.8%)
Mutual labels:  meteor
Kepler
The open source full-stack geosocial network platform
Stars: ✭ 125 (-9.42%)
Mutual labels:  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:

  • Create a Meteor app
  • Prepare a skeleton structure for Mantra and add .eslintrc and .gitignore
  • Add Meteor and NPM dependencies
  • Install NPM dependencies

Options

  • --verbose, -v

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

  • --storybook, -s

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:

  • action
  • component

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.

  • container

Generates a container and its corresponding component.

  • collection

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
  • method
  • publication
  • module

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:

  • tab size
  • templates
  • generateComponentTests (true)
  • generateContainerTests (true)

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

  • The number of spaces for indentation. Default: 2.
  • Type: number

e.g.

tabSize: 4

templates

  • The content of the templates generated by CLI
  • Type: array

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

  • Type of the template
  • Possible values: action, container, component, collection, method, publication

text

  • The content of the template to be generated by the CLI.

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

  • componentName

container

  • componentName
  • componentFileName

method

  • collectionName
  • methodFileName

publication

  • publicationFileName
  • collectionName

e.g.

storybooks

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

storybook: true

Upgrade Guide

Upgrading to 0.4.x

  • From 0.4.0, mantra-cli.yml was added. If you are upgrading from 0.3.x, simply create mantra-cli.yml file in your project root and start customizing following the documentation above.

Contributor Guide

  • Clone this repository and run npm install.
  • Write your code under /lib.
  • npm run-script compile compiles your ES2015 code in /lib into /dist.
  • npm test compiles the code and runs the tests.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].