npm package: @myjsblock/cli
Description: A CLI package to create, maintain and publish javascript block projects to AppMachine flutter applications.
Author: Eric Fennis
Latest version: 0.4.0

# @myjsblock/cli

A CLI package to create, maintain and publish javascript block projects to AppMachine flutter applications.

## Getting started

With CLI package you're able to connect local javascript project to your AppMachine Project. The provides multiple commands to create, maintain and publish new blocks.

### Installation

The CLI can be globally installed on your machine, makes it easy using it across projects.

#### NPM

```sh
npm install -g @myjsblock/cli
```

#### YARN

```sh
yarn global add @myjsblock/cli
```

#### NPX

```sh
npx @appmachine/cli [command] [options]
```

## Usage

```sh
myjsblock [command] [options]
```

## Commands

### Link command

Links your local directory to a Block Project, saves a credential file in your project root.

```sh
myjsblock link
```

### Push command

Push your local project to the AppMachine server.

```sh
myjsblock push
```

### Help

Print out complete help for all the commands

```sh
myjsblock help
```

### Supported Options

```sh
--token       Used to supply a Block token for the AppMachine App.
--secret      Used to supply a Secret to log in to the AppMachine server.
--overwrite   Overwrites the credential and config files.
--help        Displays helpful information for all commands or a specific command, when a command is provided.
--debug       Used to enable debug mode, which makes the CLI display more detailed information when performing a task.
```

## Advanced

### Manual linking

If you want you can create a credential file by your self. By adding a `myjsblock.credentials.json` file in your project directory.

The credential file must contain:

```json
{
  "token": "TJ9plldgQSL87dnK6ZIVpzTszlG3TPKo",
  "secret": "ifb1kEBUYBJ17NSQWdBUNoTTU5O2d1jlTJ9plldgQSL87dnK6ZIVpzTszlG3TPKo"
}
```

#### Git ignoring myjsblock.credentials.json

If you use version control like git, make sure you add `myjsblock.credentials.json` to the gitignore. This file should not be committed.

### Config File

For some advanced configuration you can create a `myjsblock.config.json` file in your project directory.
This enables you to change the `ouputDirectory` or `entryFile` of you project.

Example configuration file:

```json
{
  "entryFile": "index.html",
  "outputDirectory": "dist"
}
```

#### Config Properties

| Config Property | Type   | Default    | required    |
|-----------------|--------|------------|-------------|
| projectName     | string |            |no           |
| entryFile       | string | index.html |no           |
| outputDirectory | string | dist       |no           |

#### Project Name

Optional, will be used in the zip Filename. The zip filename will be shown in the AppMachine Designer.

#### Entry File

This enables you to change the entry file path of you project. For default it uses `index.html`.
Entry file name must be a name of a html file and located in the output directory.

#### Output Directory

This enables you to change the output directory path of a project. This directory will be uploaded to the server pushed with the CLI. For default it uses the `dist` directory name.

## Issues & Bugs

For issues, bugs and question please open an issue in the [issue tab](https://github.com/AppMachine/myjsblock-cli/issues).