{"id":10933,"library":"generator-jhipster","title":"JHipster Generator","description":"JHipster is an open-source development platform used to quickly generate, develop, and deploy modern web applications and microservices. It combines popular frontend frameworks like Angular, React, and Vue with a robust Spring Boot backend, supporting various database options and authentication mechanisms. The current stable version is 9.0.0, released in late 2024. JHipster follows a rapid release cadence, with several minor and patch releases within major versions, and new major versions introducing significant technology stack upgrades (e.g., Spring Boot 4, Angular 21, React 19 in v9). Its key differentiators include comprehensive full-stack generation with production-ready defaults, extensive customization options via a powerful CLI, and strong support for microservices architectures, making it suitable for enterprise-grade applications. The project recently underwent a complete TypeScript rewrite for its generator core, enhancing maintainability and developer experience.","status":"active","version":"9.0.0","language":"javascript","source_language":"en","source_url":"git://github.com/jhipster/generator-jhipster","tags":["javascript","yeoman-generator","Java","Spring","Spring Boot","Spring Security","JPA","Hibernate","React","typescript"],"install":[{"cmd":"npm install generator-jhipster","lang":"bash","label":"npm"},{"cmd":"yarn add generator-jhipster","lang":"bash","label":"yarn"},{"cmd":"pnpm add generator-jhipster","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required for testing JHipster generators programmatically.","package":"yeoman-test","optional":false}],"imports":[{"note":"This represents the main generator class, primarily for programmatic testing or extending JHipster. Version 9 is ESM-first, so CommonJS `require` is incorrect for direct imports.","wrong":"const JHipsterGenerator = require('generator-jhipster');","symbol":"JHipsterGenerator","correct":"import { JHipsterGenerator } from 'generator-jhipster';"},{"note":"Use `import type` for type-only imports to prevent bundling issues and ensure correct type inference for configuration objects. This type defines the structure of the application's `.yo-rc.json`.","wrong":"import { JHipsterApplicationConfiguration } from 'generator-jhipster';","symbol":"type JHipsterApplicationConfiguration","correct":"import type { JHipsterApplicationConfiguration } from 'generator-jhipster';"},{"note":"For parsing JHipster Domain Language (JDL) files programmatically. Older CommonJS versions might have used direct submodule paths or default exports; V9 uses a flattened ESM structure with named exports.","wrong":"import JDLParser from 'generator-jhipster/lib/jdl-parser';","symbol":"JDLParser","correct":"import { JDLParser } from 'generator-jhipster';"}],"quickstart":{"code":"// Quickstart for JHipster v9.0.0\n// This demonstrates the typical setup and generation of a JHipster application.\n\n// 1. Install Yeoman globally if you haven't already.\n// Yeoman is the scaffolding tool that runs JHipster generators.\nconsole.log('Installing Yeoman globally...');\n// npm install -g yo\n\n// 2. Install the JHipster generator globally.\nconsole.log('Installing JHipster generator globally...');\n// npm install -g generator-jhipster\n\n// 3. Create a new directory for your application and navigate into it.\n// mkdir myapp\n// cd myapp\n\n// 4. Run the JHipster generator. This will start an interactive prompt\n// where you can configure your application's type, technologies, and features.\nconsole.log('Running JHipster generator...');\n// yo jhipster\n\n// During the interactive process, you'll be asked questions such as:\n// - Which type of application would you like to create? (Monolithic, Microservice, Gateway)\n// - Which front-end framework would you like to use? (Angular, React, Vue)\n// - Which type of authentication would you like to use? (JWT, OAuth 2.0, Session)\n// - Which database would you like to use? (SQL, MongoDB, Cassandra, etc.)\n// - Which build tool would you like to use? (Maven, Gradle)\n\n// After generation, you can run your application.\nconsole.log('JHipster application generated. To run:');\nconsole.log('  cd myapp');\nconsole.log('  ./mvnw (for Maven) or ./gradlew (for Gradle) to build and run the backend.');\nconsole.log('  npm start or yarn start (in the frontend folder) to run the frontend.');\n\n// This provides a full-stack application ready for development.","lang":"javascript","description":"This quickstart outlines the essential steps to install the JHipster generator and scaffold a new full-stack application using the `yo jhipster` command-line interface."},"warnings":[{"fix":"Review the official JHipster v9 release notes and migration guide. Ensure your development environment meets the new Java and Node.js requirements. For frontends, be aware of zoneless Angular changes and the React-bootstrap transition.","message":"JHipster v9 introduces significant technology stack upgrades, including Spring Boot 4, Angular 21 (with zoneless by default), React 19 (replacing reactstrap with react-bootstrap), minimum Java 21, and minimum Node.js 22. Existing projects must update their environment and potentially migrate codebases.","severity":"breaking","affected_versions":">=9.0.0"},{"fix":"Migrate your React component code to use `react-bootstrap` components and utilities. Consult `react-bootstrap` documentation for equivalent components and API changes.","message":"React applications generated with JHipster v9 now use `react-bootstrap` instead of `reactstrap`. This change requires refactoring any custom React components that previously relied on `reactstrap`'s API or components.","severity":"breaking","affected_versions":">=9.0.0"},{"fix":"Familiarize yourself with Angular's zoneless change detection. Update components to use signals or other Angular reactive primitives. Debugging tools might need to be adjusted for zoneless applications.","message":"Angular applications generated with JHipster v9 are now zoneless by default. This significantly changes change detection mechanisms and might require adjustments to code that explicitly relied on Zone.js, particularly for third-party libraries or manual change detection triggers.","severity":"breaking","affected_versions":">=9.0.0"},{"fix":"Avoid installing or using `v9.0.0-beta.1`. Upgrade to `v9.0.0-beta.3` or later stable versions.","message":"Version 9.0.0-beta.1 was broken, causing the CLI to fail with 'Cannot find package 'yeoman-test'' errors when installed globally.","severity":"gotcha","affected_versions":"9.0.0-beta.1"},{"fix":"Avoid installing or using `v9.0.0-beta.2`. Upgrade to `v9.0.0-beta.3` or later stable versions.","message":"Version 9.0.0-beta.2 was broken, leading to 'Maximum call stack size exceeded' errors when parsing JDL (JHipster Domain Language) files.","severity":"gotcha","affected_versions":"9.0.0-beta.2"}],"env_vars":null,"last_verified":"2026-04-19T00:00:00.000Z","next_check":"2026-07-18T00:00:00.000Z","problems":[{"fix":"Upgrade `generator-jhipster` to version `9.0.0-beta.3` or any subsequent stable release (e.g., `npm install -g generator-jhipster@latest`).","cause":"An issue in `generator-jhipster@9.0.0-beta.1` caused `yeoman-test` to be incorrectly resolved when the generator was installed globally.","error":"Cannot find package 'yeoman-test'"},{"fix":"Upgrade `generator-jhipster` to version `9.0.0-beta.3` or any subsequent stable release (e.g., `npm install -g generator-jhipster@latest`).","cause":"A bug in the `chevrotain` dependency used by `generator-jhipster@9.0.0-beta.2` led to stack overflow errors during JDL file parsing.","error":"Maximum call stack size exceeded"}],"ecosystem":"npm"}