Sagan client module
This module holds all web resources that make the client application of spring.io:
- CSS styles
- images and fonts
- front-end dependencies
This module is using several tools for its own build system:
Node.js is brought by the Gradle build itself, so you don't need it to build the project.
But if you want to work on the
sagan-client module, installing a recent version of node.js
is a good idea. Usage of the Node Version Manager (nvm) is perfectly fine.
Making changes in sagan-client
When running the application with the
SiteApplication class in your IDE, resources in sagan-client are served
directly from the sagan-client module, so you can develop against the unoptimized version of the client.
For this to work, your IDE should be configured to consider the
sagan-site module as its working directory. Check out
the run the site locally section on the wiki.
$ npm run build
Node.js and npm
npm is the node package manager; it installs required dependencies in the
package.json file to find:
- all dependencies and their versions in
- all available
scriptsthat you can run with
npm run scriptname
Note: we make extensive use of npm scripts so you don't have to install binaries globally on your system's PATH.
npm dynamically adds binaries listed in
node_modules/.bin to its own PATH.
jspm is a package manager for the SystemJS universal module loader, built on top of the dynamic ES6 module loader. It is compatible with many module formats, including the commonJS format we're using here.
Gulp is the build system we're using to make things work together.
We've defined all tasks in our
In this build, we're using dependencies that were downloaded by npm and we're concatenating/optimizing/packaging
resources that make our client application.