frontend

frontend

Download and install node.js, install npm, yarn and runs npm, webpack, gulp, grunt and more.

dependency

<dependency>
 <groupId>org.jooby</groupId>
 <artifactId>jooby-frontend</artifactId>
 <version>1.2.3</version>
</dependency>

usage

Using npm:

{
  on("dev", () -> {
    use(new Npm("v8.6.0"));
  });

}

Using yarn:

{
  on("dev", () -> {
    use(new Yarn("v8.6.0", "v1.1.0"));
  });

}

NOTE: The module must be used in development only. That’s why we wrap the module installation using the environment predicate. In order to build a production version, you need to configure a build time process. The frontend maven plugin does this job for maven projects. If you are a Gradle user, you might want to try the gradle-node-plugin.

install phase

The module automatically sync and install dependencies at startup time.

default task

The module runs npm run build or yarn run build at startup time (after install phase).

This mean your package.json must defines a build script, like:

{ "scripts": { "build": "webpack" } } 

The default task is always executed, unless you define one or more custom tasks (see next).

custom task

Execution of arbitrary scripts is available via npm.onStart and npm.onStarted.

The next example executes two scripts:

{
  use(new Npm("v8.6.0"))
    .onStart(npm -> {
      npm.executeSync("run", "local");
      npm.executeSync("run", "next");
    });
  );
}

The next example executes a script without waiting to finish (useful for background tasks):

{
  use(new Npm("v8.6.0"))
    .onStart(npm -> {
      npm.execute("run", "webserver");
    });
  );

}

starter project

Checkout the webpack-starter demo project.

That’s all folks!!