jhipster / generator-jhipster-nodejs

A NodeJS blueprint that creates the backend using NestJS
https://www.npmjs.com/package/generator-jhipster-nodejs
Apache License 2.0
259 stars 80 forks source link
angular generator jhipster nestjs-backend nodejs react vuejs yeoman-generator

generator-jhipster-nodejs

NPM version Generator Build Status Generator Angular Samples Status Generator React Samples Status Generator Vue Samples Status Generator Microservice Samples Status Gitter Downloads

generator-jhipster-nodejs, the official NodeJS blueprint that uses NestJS TypeScript Framework for your backend. We encourage you to use it and give us your feedback.

Notes

For the features of the last release refers to CHANGELOG.md.

Demo

The UI is inherited from standard JHipster app client. So only backend generation changes. For this, a live app running is less useful than the code and the app structure shows in:

Greetings, nodejs Hipster!

This project adds nodejs for your backend, all TypeScript files generation, not Java!, to the JHipster application 😎. It is based on JHipster Blueprint 🔵, that is meant to be used in a JHipster application.

The generator applies this standard configuration for the NodeJS app:

  • NestJS base app with web controllers, swagger doc and JWT or OAuth2 passport auth services

  • The app starts with four seed users (admin, basic user and anonymous roles), as standard JHipster monolithic app, with SQLite for dev and configurable sql db for prod. But from the 1.5.0 release you can choose mongodb that uses a memory version for dev/test

  • The app uses TypeORM and asks you a question for another sql db or for mongodb

  • TypeORM is also used for the automatically migration and versioning of the database scripts

  • The app runs also as a full stack app including, for the monolitich choice, the Angular/React client with the home page set for NHipster and CRUD operations for entity generated with subgenerator and jdl import

A previous of a jwt auth app:

Prerequisites

As this is a JHipster blueprint, we expect you have JHipster and its related tools already installed:

Please attention to install that node.js version!!

🚀 How to get started

  1. Make sure you have followed the JHipster installation guide and that both yeoman and jhipster are installed.
  2. Install the package with npm install -g generator-jhipster-nodejs
  3. And generate the application with nhipster

Installation Details

With NPM

To install this blueprint:

npm install -g generator-jhipster-nodejs

To update this blueprint:

npm update -g generator-jhipster-nodejs

With Yarn

To install this blueprint:

yarn global add generator-jhipster-nodejs

To update this blueprint:

yarn global upgrade generator-jhipster-nodejs

🚦 What we have now

This is a blueprint that is runnable by:

nhipster

However, it also ships with an nhipster CLI that you can use as a shortcut.

✅ General App generation

✅ JDL model support generation

✅ Ci-cd generation

For the last, in the generate-sample samples folder and jdl-samples there are some examples of jdl models.

Using Docker

  1. Download the Dockerfile:
mkdir docker
cd docker
wget https://github.com/jhipster/generator-jhipster-nodejs/raw/master/docker/Dockerfile
  1. Build the Docker images:
docker build -t jhipster-generator-nodejs:latest .
  1. Make a folder where you want to generate the Application:
mkdir app
cd app
  1. Run the generator image in one of the two following options.
docker run -it --rm -v $PWD:/home/jhipster/app jhipster-generator-nodejs
docker run -it --rm -v $PWD:/home/jhipster/app jhipster-generator-nodejs /bin/bash

🛠 Steps to develop a generator feature and test it

Shell steps:

$ git clone https://github.com/jhipster/generator-jhipster-nodejs.git
$ cd generator-jhipster-nodejs
$ git checkout -b feature/my-feature
$ npm install
$ npm link
$ cd ..
$ mkdir test-generation
$ cd test-generation

Now you will develop under the generator-jhipster-nodejs that you have cloned with git. After finish, to generate the app and check your feature, run in test-generation folder:

❤️ For community

Found an issue, check if is already opened or closed, otherwise open a new feature or bug.

Interested in contributing, check out our contributing guide to get started.

Refer for contribution to roadmap or to kanban board.

Any questions Angelo Manganiello.

Contributors ✨

Thanks goes to these wonderful people:

Angelo Manganiello (founder stream lead)
Angelo Manganiello
(founder stream lead)
Hadi Rasouli
Hadi Rasouli
Iván García Sainz-Aja
Iván García Sainz-Aja
Daniel Franco
Daniel Franco
Ed Pham
Ed Pham
Markus
Markus

Special Thanks

License

Apache-2.0 © Angelo Manganiello