LaxarJS generator

A simple way to create LaxarJS applications and artifacts

Installation

First you have to install the required npm modules for yeoman and install the package with the LaxarJS generator:

npm install -g yo bower grunt-cli generator-laxarjs

Alternatively you can install the packages locally in the application directory. Take a look below to the section "Local Installation" .

Generators

The Yeoman generator laxarjs comes up with the main generator for scaffolding an application and three sub generators for widgets, activities and controls.

Available generators:

  • laxarjs
  • laxarjs:widget
  • laxarjs:activity
  • laxarjs:control

Application

To scaffold a new LaxarJS application, create a directory and run the generator:

mkdir my-application
cd my-application
yo laxarjs

After answering several questions, the generator creates the bare-bones application scaffolding for you. Now you can fetch your project's dependencies using npm install and start the application development server by running grunt laxar-develop.

Option for the App-Generator

The app generator has one option for a custom banner. You can pass the path to a file including your custom banner as an option. The files the generator creates will have this banner.

mkdir my-application
cd my-application
yo laxarjs --banner=my-custom-banner.txt

The banner will be saved in the Yeoman configuration file (.yo-rc.json) and will be used by the sub-generators.

Sub-Generators

The sub-generators expect a Yeoman configuration file .yo-rc.json in the root directory of the application. If you created your application using the Yeoman generator as described above, a Yeoman configuration file was already created for you.

If the application has no Yeoman configuration file, just create one by running:

echo {} > .yo-rc.json

Widget

To generate the scaffold for a LaxarJS widget use the following command:

yo laxarjs:widget

The generator creates the new widget in a directory named like the widget. If the current directory is the root directory of the application, the generator places the new widget into the default directory for widgets, includes/widgets. Otherwise, the widget scaffolding is created within the current directory.

Activity

To generate the scaffolding for a LaxarJS activity use either the command

yo laxarjs:activity

or use the widget generator with the option activity:

yo laxarjs:widget --activity

The generator creates the new activity in a directory named like the activity, just as described above for widgets.

Control

To generate the scaffolding for a LaxarJS control use the following command:

yo laxarjs:control

The generator creates the new control in a directory named by the control. If the current directory is the root directory of the application, the generator places the new widget into the default directory for controls, includes/controls. Otherwise, a new directory with the scaffolding is created in the current directory.

Arguments and Options for Sub-Generators

Each of the three sub-generators accepts the name for the artifact as an argument, the destination path as an option and an option for a custom header. The following examples are for the widget generator but the others behave accordingly.

You can pass the name for a new widget as an argument from the command line:

yo laxarjs:widget my-widget

In this case the generator creates the scaffold in the directory includes/widgets/my-widget independently from the working directory.

Using the option directory, it is possible to change the destination. Using this command, the generator creates the files in a directory named by the new widget in the directory includes/widgets/destination:

yo laxarjs:widget --directory=includes/widgets/destination

It is possible to set the directory option and pass the name as argument:

yo laxarjs:widget my-widget --directory=includes/my-app

Using this pattern, the full path can be specified when running the generator. The command above creates the new widget in the directory includes/my-app/my-widget.

If you want a custom banner for the files the generator creates, you can pass the path to a file including your banner as option:

yo laxarjs:widget my-widget --banner=my-custom-banner.txt

Local Installation

Alternatively to the global installation of the npm modules you can install the packages locally in the application directory:

mkdir my-application
cd my-application
npm install yo bower grunt-cli generator-laxarjs

Create a simple npm configuration file for bootstrapping:

echo '{ "scripts": { "yo": "yo" } }' > package.json

The LaxarJS generator will ask if it should overwrite the package.json and you should agree.

To run Yeoman and the LaxarJS generator use npm run yo laxarjs instead of yo laxarjs.

When using the local installation of yo the arguments for the generator must be separated by two hyphens to clarify that the arguments are for the generator and not for npm:

npm run yo laxarjs:widget my-widget -- --directory=includes/my-app