CLI to bootstrap React projects with TypeScript
A CLI to bootstrap React Applications ranging in complexity from the very simple to more complex setups with CI.
To install run
npm i -g @webnsurf/bootstrap
This will install the package globally and make wns-new
command available anywhere on your machine. You can also install it locally and then use it with NPX
To create a new project run
wns-new <project_name> [arguments]
If no project_name
is provided the current working directory is used. Each project can be configured with:
- Frontend setup
- React
- TypeScript
- SCSS
- Routing with React Router (optional)
- Login with React Final Form (optional)
- Design library selection (optional)
- Antd
- Material UI - this option is currently disabled (WIP)
- Backend setup (optional)
- Express
- TypeScript
- Login (optional)
- Docker setup (optional)
- Development & production setup with Docker Compose
- With Træfik proxy labels for routing to appropriate containers (front-end / back-end)
- For best implementation experience we suggest checking out Web'n'surF proxy based on Træfik
- Deployment setup (optional)
- Jenkins pipeline
- Deployments to staging & production environments
- For best implementation experience we suggest checking out Web'n'surF CI server based on Jenkins
The CLI is interactive so specifying the below arguments when running the command is not required.
Arguments:
Name | Alias | Action | Default value | Info |
---|---|---|---|---|
--yes |
-y |
Skip the propmpt and use default options | false |
Preferred default options to use here can be set and saved using the --set-defaults flag (see below) |
--docker |
-d |
Create a Docker setup within the project | false |
This will create the following structure:
127.0.0.1 and are then proxied to the right containers using Web'n'surF proxy). Get the Web'n'surF proxy based on Træfik
|
--pipeline |
-p |
Create a Jenkins pipeline | false |
This will create the following structure:
--docker to true .Specify --server-user & --server-ip options to replace variables in the files listed above.Get the Web'n'surF CI server based on Jenkins |
--install |
-i |
Install node modules | false |
Install node modules once the project is initialised |
--set-defaults |
-s |
Set default options | false |
Set default options to use next time --yes(-y) is used |
--no-backend |
N/A |
Create a project without a back-end server | false |
By default the project is created with an Express JS backend server. This option disables that. |
--no-git |
N/A |
Create a project without Git | false |
By default a new Git project is initiated. This option disables that. |
--no-router |
N/A |
Create a project without React router | false |
By default React router is included and a few front-end routes are set up. This option disables that. This option can not be disabled if the project is created with Login functionality. |
--no-login |
N/A |
Create a project without login fuctionality | false |
By default the project is setup with a redux store and a user login functionality (both back-end and front-end logic). This option disables that |
--design |
N/A |
Specify a design library | null |
Sets up, istalls and uses a React design library in the project. Available options:
|
--domain |
N/A |
Domain name for proxy | webnsurf.com |
Specify a domain name to use in the Web'n'surF proxy router setup. This option is only needed if --docker is set to true
|
--server-user |
N/A |
Remote server username | <SERVER_USERNAME> |
Specify a username on the remote server for the deployment (/docker/deploy.sh ) and start-remote (/docker/start-remote.sh ) scripts to use.This option is only needed if --pipeline is set to true
|
--server-ip |
N/A |
Remote server IP address | <SERVER_IP> |
Specify the remote server IP address for the deployment (/docker/deploy.sh ) and start-remote (/docker/start-remote.sh ) scripts to use.This option is only needed if --pipeline is set to true
|