Speed up the generator-jhipster

Tip submitted by @pascalgrimaud

When using the generator-jhipster, the command npm install may take several minutes, depending on your connection speed.

This tip can be used in many cases:

  • for demo of JHipster, to improve your experience
  • for dev team, to regenerate faster a project with .yo-rc.json
  • for continuous integration

Create a new project for node_modules

There are 2 types of node_modules directory. You can’t use the same for both types of project.

  • grunt
  • gulp

Create a directory which will contain all node_modules libraries, and go into it:

mkdir jhipster-speedup cd jhipster-speedup

Create the directory node_modules for grunt:

mkdir -p grunt/node_modules

Create the directory node_modules for gulp:

mkdir -p gulp/node_modules

The project structure is :

jhipster-speedup
├── grunt
│   ├── node_modules
├── gulp
│   ├── node_modules

Warning! Use these 2 next commands only if your are a developer on JHipster. It will link to your fork project of generator-jhipster:

  • grunt:

cd grunt/node_modules && npm link generator-jhipster

  • gulp:

cd gulp/node_modules && npm link generator-jhipster

Generating projects

Create a directory which will contain your new JHipster project, and go into it:

mkdir jhipster cd jhipster

Depending of your choice, grunt or gulp, create a link to the directory node_modules:

  • grunt:

ln -s <your path>/jhipster-speedup/grunt/node_modules

  • gulp:

ln -s <your path>/jhipster-speedup/gulp/node_modules

Generate a new project, and answer to all questions:

yo jhipster

The first time, it will take several minutes.

The next times, it will use the existing node_modules directory, so npm won’t download all libraries.

Warning! If you use specific libraries and modify your package.json, you should copy the node_modules from jhipster-speedup to your folder project, instead of using a link.