Skip to content

UI5 logo

UI5 Tooling

An open and modular toolchain to develop state-of-the-art applications based on the UI5 framework.

Get Started

Main Features

๐Ÿ’ป UI5 CLI

Also see the UI5 CLI Documentation

# Global
npm install --global @ui5/cli

# In your project
npm install --save-dev @ui5/cli

โš™๏ธ Project Setup

Configure your project for use with UI5 Tooling.
Also see the Configuration Documentation

โฏ ui5 init
Wrote ui5.yaml:

specVersion: "3.2"
metadata:
  name: my-app
type: application

๐Ÿšš Dependency Management

UI5 framework dependencies are managed by the tooling. All other dependencies are managed by your favorite node package manager.

โฏ ui5 use SAPUI5@1.117.0
Updated configuration written to ui5.yaml
This project is now using SAPUI5 version 1.117.0

โฏ ui5 add sap.ui.core sap.m themelib_sap_fiori_3
Updated configuration written to ui5.yaml
Added framework libraries sap.ui.core sap.m themelib_sap_fiori_3 as dependencies

๐Ÿ„ Development Server

Start a local development server to work on your project.
Also see the Server Documentation

โฏ ui5 serve
Server started
URL: http://localhost:8080

๐Ÿ›  Build for Production

Build an optimized version of your project.
Also see the Builder Documentation

โฏ ui5 build
info graph:helpers:ui5Framework Using OpenUI5 version: 1.117.0
info ProjectBuilder Preparing build for project my-app
info ProjectBuilder   Target directory: ./dist
info ProjectBuilder Cleaning target directory...
info Project 1 of 1: โฏ Building application project my-app...
info my-app โ€บ Running task escapeNonAsciiCharacters...
info my-app โ€บ Running task replaceCopyright...
info my-app โ€บ Running task replaceVersion...
info my-app โ€บ Running task minify...
info my-app โ€บ Running task generateFlexChangesBundle...
info my-app โ€บ Running task generateComponentPreload...
info ProjectBuilder Build succeeded in 296 ms
info ProjectBuilder Executing cleanup tasks...

๐Ÿงช Node.js API

Most UI5 Tooling modules provide JavaScript APIs for direct consumption in other Node.js projects. This allows you to rely on UI5 Tooling for UI5-specific build functionality and project handling, while creating your own tools to perfectly match the needs of your project.

All available APIs are documented in the UI5 Tooling API Reference.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import {graphFromPackageDependencies} from "@ui5/project/graph";

async function buildApp(projectPath, destinationPath) {
    const graph = await graphFromPackageDependencies({
        cwd: projectPath
    });
    await graph.build({
        destPath: destinationPath,
        selfContained: true,
        excludedTasks: ["transformBootstrapHtml"],
        includedDependencies: ["*"]
    });
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
async function buildApp(projectPath, destinationPath) {
    const {graphFromPackageDependencies} = 
        await import("@ui5/project/graph");
    const graph = await graphFromPackageDependencies({
        cwd: projectPath
    });
    await graph.build({
        destPath: destinationPath,
        selfContained: true,
        excludedTasks: ["transformBootstrapHtml"],
        includedDependencies: ["*"]
    });
}