/Ghoti-CLI

:fish: New project within 60 seconds

Primary LanguageLiveScriptMIT LicenseMIT

Ghoti-CLI

npm version Build Status codecov Gitter downloads

🐟 A CLI tool that helps you start developing your new project within 60 seconds

Install

Install script

curl -sSL https://raw.githubusercontent.com/WMXPY/Ghoti-CLI/master/bin/install.sh | sudo sh -
# or
wget -qO- https://raw.githubusercontent.com/WMXPY/Ghoti-CLI/master/bin/install.sh | sudo sh -

Install with NPM

npm install -g ghoti-cli
# or
sudo npm install -g ghoti-cli

Dependence

You might need typescript installed globally to reduce install time.

# To install typescript
npm install -g typescript
# or
sudo npm install -g typescript

After install, you have to link typescript to every just created project by using:

# To link typescript to your project
npm link typescript
# or
sudo npm link typescript

If typescript is not installed globally in your global npm node_modules path, npm install will automatically install it for you.

Usage

Use ghoti ? or ghoti help for all available commands.

Init project

ghoti init [template] [project path]

Find available template with ghoti list, for each template, you can use ghoti whatis [template] to know more about it.

External projects

ghoti init -f [template link] [project path]

Use above command to install and init external template, you can also install it without init it

ghoti install [template link]

Check out some external templates ->HERE<-

Extend project

ghoti component [component name]
ghoti page [page name]
ghoti lambda [lambda name]
ghoti func [func name]
ghoti feature [feature name]

Q & A

What is a component/page/lambda/func?

A component should be used as a reusable react class; a page is an unreusable react class, lambda and function are function sets.

What is the difference between lambda and function?

Lambda shall be developed with functional programming without side effect, like mapping a JSON to a simple array, and function is better to be used as logic codes.

What is a feature?

A feature is used to make use case scenario; when you are generating a feature, ghoti will automatically create a test file for you to test.

Am I have to use these structures?

No, you can use any function set you want, just init with type "react-unstructured".

Troubleshooting

You can always try ghoti help anywhere; npm run hint or ghoti fix in your created project to see if there is a trouble solution.

ghoti fix [error name] like ghoti fix typescript is not a package can help you find out if the error is already known when you know the error name.