generator-ui5-project
A Yeoman generator for a UI5 project holding several applications in npm workspaces, with eight subgenerators for recurring tasks and a choice of six deployment targets.
A UI5 project with more than one application needs an npm-workspaces layout, deployment configuration, and somewhere to put the pieces added after the first pass. This generator scaffolds that layout, run through Easy-UI5generator-easy-ui5A Yeoman meta-generator that scaffolds UI5 projects, prompting for a target platform, and loads further sub-generators from the UI5 Community for TypeScript apps, launchpad plugins and libraries.community org, ui5 as yo easy-ui5 project, and carries eight subgenerators for what recurs afterwards: a uimodule, a flexible programming model page, a data model, an XML view, a custom control, a QUnit test, an OPA5 journey and a CAP server for the Node.js runtime. While prompting it asks which of six deployment targets to configure: a static webserver, an Application Router, Application Frontend Service, the SAP HTML5 Application Repository Service or SAP Build Work Zone standard edition, each deployed to Cloud Foundry, or SAP NetWeaver through the deploy-to-abap task. From version 0.1.0 its README says it strives to share core functionality such as webapp scaffolding with SAP's open-ux-tools.
Facts
Where it sits
Who is behind it
In the atlas: maintains 69@ui5-communitymaintainerAndreas KunzContributes to this
In the atlas: contributes to 19@akudevAlexanderContributes to this
In the atlas: contributes to 2@AlexanderK22Harald GutbrodContributes to this
In the atlas: contributes to 1@dh4rryflx-rscContributes to this
In the atlas: contributes to 1@flx-rscgeorgbischoffContributes to this
In the atlas: contributes to 3@georgbischoffDominik HeimContributes to this
In the atlas: contributes to 25@heimwegeMarius ObertContributes to this
In the atlas: contributes to 3@IObertLukas BöhmContributes to this
In the atlas: contributes to 15@lboehmMarcel SchorkContributes to this
In the atlas: contributes to 12@marcelschorkMarian ZeisContributes to this
In the atlas: maintains 35, contributes to 86, wrote 25@marianfoo20 contributors
Before choosing this
Conditions
PracticalFunctional boundary
Not for a single-application project with no deployment configuration: for that the README points to generator-ui5-appgenerator-ui5-appA Yeoman generator, built on the official UI5 tooling, that scaffolds a new UI5 application in one pass, run as a plug-in for Easy-UI5 or standalone, ready for npm start.community org, ui5 instead.
What it declares
Every artifact
- Type
- Generator
- Origin
- By a community org
As a generator
- Generates
- A new projectA component in an existing projectConfiguration
- Run with
- Yeoman
- Distributed through
- does not say
Connections
Starting a project, and adding pieces to one that runs
Yeoman meta-generator for scaffolding UI5 projects
Download
README
quoted from ui5-community/generator-ui5-project under Apache-2.0, readGenerator for OpenUI5/SAPUI5 projects
A project generator for projects that contain one or more UI5 applications ("uimodules") and manage them via npm workspaces. The uimodules itself use the official UI5 tooling. The generator contains multiple subgenerators to help with recurring tasks. It also supports multiple deployment targets on the SAP Business Technology Platform. This generator was build as a plug-in for the community project easy-ui5 by SAP.
If you are looking to create a simple UI5 project with no deployment configuration and don't plan to add multiple uimodules, check out the generator-ui5-app.
As of version
0.1.0, we strive to share core functionality (such as webapp scaffolding) with SAP'sopen-ux-toolseffort, which is "a set of tools and libraries that makes it faster and easier to develop SAP Fiori applications".
Usage with easy-ui5
npm i -g yo generator-easy-ui5
yo easy-ui5 project
███████╗ █████╗ ███████╗██╗ ██╗ ██╗ ██╗██╗███████╗ ▄▄ ▄▄
██╔════╝██╔══██╗██╔════╝╚██╗ ██╔╝ ██║ ██║██║██╔════╝ █████
█████╗ ███████║███████╗ ╚████╔╝ ██║ ██║██║███████╗ ███
██╔══╝ ██╔══██║╚════██║ ╚██╔╝ ██║ ██║██║╚════██║ █
███████╗██║ ██║███████║ ██║ ╚██████╔╝██║███████║
╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝╚══════╝
Subgenerators
This generator is split up into multiple subgenerators to help with recurring tasks even after the initial project generation. See the following list for all available subgenerators:
uimodule
yo easy-ui5 project uimodule
This subgenerator adds a new uimodule to an existing project. It reuses the config of the existing project and uimodule(s).
fpmpage
yo easy-ui5 project fpmpage
This subgenerator adds a new flexible programming model (fpm) page to one of the existing uimodules. This subgenerator only works for projects that enabled the flexible programming model during project creation.
model
yo easy-ui5 project model
This subgenerator adds a new data model to one of the existing uimodules. Supported model types are OData v4, OData v2, and JSON. The subgenerator can optionally set-up a proxy to the respective data source via the ui5.yaml.
view
yo easy-ui5 project view
This subgenerator adds a new XML view to one of the existing uimodules. Only XML views are supported. The subgenerator can optionally set-up the corresponding route and target in the manifest.json.
customcontrol
yo easy-ui5 project customcontrol
This subgenerator adds a new custom control (which extends an existing UI5 control) to one of the existing uimodules.
qunit
yo easy-ui5 project qunit
This subgenerator adds a qunit test (unit test) to one of the existing uimodules.
opa5
yo easy-ui5 project opa5
This subgenerator adds a OPA5 journey (integration test) and page object to one of the existing uimodules.
cap
yo easy-ui5 project cap
This subgenerator adds an SAP Cloud Application Programming Model (CAP) server for the Node.js runtime to the project and connects one of the existing uimodules to it (via the cds-plugin-ui5 and a dev dependency). This subgenerator is basically a convenvience wrapper around the cds init command - with the added benefit of constructing a deployment-ready mta.yaml file on root level of the project, that includes all necessary artifacts in line with the selected deployment target.
Deployment
Projects created with this generator use the Multitarget Application approach and can be built and deployed out of the box:
Make sure you have the Cloud Foundry CLI installed and are logged in to your Cloud Foundry environment via the
cf logincommand.
npm run build
npm run deploy
During the prompting phase, the generator will ask on which target platform you want to deploy your project. See the following list for all available deployment targets:
Static webserver
With this option the project gets deployed to Cloud Foundry via the Staticfile buildpack to run on a static webserver without authentication or proxys in place.
Application Router
With this option the project gets deployed to Cloud Foundry in the form of an Application Router, which is a Node.js application (Node.js buildpack) that acts as a reverse proxy and can handle authentication as well different routes within your project. The uimodules of your project are served via the local dist/ directory of the Application Router.
Application Frontend Service
With this option the project gets deployed to Cloud Foundry via the Application Frontend Service using the MTA-based approach (Multi-Target Application).
SAP HTML5 Application Repository Service
With this option the project gets deployed to Cloud Foundry via the SAP HTML5 Application Repository Service. This makes the application visible in the "HTML5 Applications" section in your SAP BTP subaccount and is the foundation for accessing with other apps and services on SAP BTP.
SAP Build Work Zone, standard edition
With this option the project gets deployed to Cloud Foundry via the SAP HTML5 Application Repository Service and is also accessible via SAP Build Work Zone, standard edition, which provides a Fiori Launchpad for your applications.
SAP NetWeaver
With this option the uimodules gets deployed to SAP NetWeaver using the deploy-to-abap task.
Note: You have to run
npm run deployfor the uimodules individually (in their respective directories) to deploy them, which is different to the other deployment scenarios.
Debugging
Follow these steps to debug this generator (or run it in standalone mode for that matter):
- Clone this repository.
- Start one of the subgenerators in a JavaScript debug terminal within VS Code:
yo ./generators/<subgenerator>, e.g.yo ./generators/project(adjust the path accordingly if running from within an existing application directory)
If you are feeling really fancy, you can also start a subgenerator via the native Node.js debugger and connect an editor of your choice (any Neovim users here? 👋🏻) via the Debug Adapter Protocol:
node --inspect node_modules/yo/lib/cli.js ./generators/project
Happy coding!
Support
Please use the GitHub bug tracking system to post questions, bug reports or to create pull requests.
Contributing
We welcome any type of contribution (code contributions, pull requests, issues) to this generator equally. Check out the debugging section to learn how to set this generator up for development on your machine.
Others providing
Compare all 23 on the Generators page →- abap2UI5 Layout Editorabap2UI5 Layout EditorA browser editor that lays out a UI5 view by drag and drop and writes it out as one abap2UI5 app class, pulled into the system with abapGit.community org, abapDrag-and-drop UI5 view editor that writes an abap2UI5 app class
- generator-ui5-react-nestgenerator-ui5-react-nestA Yeoman generator that scaffolds a pnpm monorepo with a UI5 app and a Vite React app, which the UI5 app embeds through a custom control, UI5Nest, rather than an iframe.independent, ui5Yeoman generator for a UI5 app that loads a React app
- SAP Build CodeSAP Build CodeSAP's development environment on BTP for SAPUI5, SAP Fiori, mobile and CAP applications that run on the SAP BTP, Cloud Foundry Runtime, in which Joule generates models, services, logic, tests and apps.sap official, btpDevelopment environment on BTP for UI5, Fiori, mobile and CAP
- ui5-control-generatorui5-control-generatorA command-line generator that writes UI5 custom controls, in JavaScript or TypeScript, from the html files in a project, with control logic and renderer split into two files by default.independent, ui5Command line generator of UI5 custom controls from html
- Joule in SAP Build CodeJoule in SAP Build CodeJoule's generative AI inside SAP Build Code, pitched as "optimized for Java and JavaScript application development": opened from SAP Business Application Studio's activity bar, slash commands generate a CAP data model, services, sample data, business logic and a Fiori elements UI.sap official, capJoule's generative AI inside SAP Build Code
- @sap-ux/cap-config-writer@sap-ux/cap-config-writerSAP's writer module for changing a CAP project's configuration from code, so a tool can add a UI5 app to a project that already exists, returning a mem-fs editor whose commit writes the changes.sap official, capWriter module for changing a CAP project's configuration from code
- @sap-ux/create@sap-ux/createSAP Fiori tools as a command: npx @sap-ux/create changes the features of a Fiori project that already exists, through its add, generate, convert, remove, update and change subcommands.sap official, ui5Command line for changing features of an existing Fiori project
- @sap-ux/fe-fpm-writer@sap-ux/fe-fpm-writerA library that writes flexible programming model elements, such as a custom page wired into the app's routing, into a Fiori elements application for OData v4 from Node code.sap official, ui5Writer of flexible programming model elements into Fiori elements apps
- @sap-ux/odata-service-writer@sap-ux/odata-service-writerA library that adds an OData service to a UI5 project that already exists, writing the file updates from a config object naming the service url, its OData version and a destination.sap official, ui5Writer that adds an OData service to an existing UI5 project
- @sap-ux/ui5-application-writer@sap-ux/ui5-application-writerA library that writes the base structure of a UI5 project from Node code, out of an app id, title and description, returning a mem-fs editor so a generator needs no template engine of its own.sap official, ui5Writer of the base structure of a UI5 project from Node code
- create-easy-ui5create-easy-ui5An npm-init and npx wrapper that runs the Easy-UI5 Yeoman generator without a global Yeoman install, handing control to generator-easy-ui5 and forwarding any arguments.community org, ui5npm-init wrapper for the Easy-UI5 Yeoman generator
- create-wdi5create-wdi5An npm initializer that adds wdi5 end-to-end testing to an existing UI5 application, installing WebdriverIO's peer dependencies, writing a wdio.conf file and setting an npm script.community org, ui5npm initializer adding wdi5 testing to an existing UI5 app
- generator-easy-ui5generator-easy-ui5A Yeoman meta-generator that scaffolds UI5 projects, prompting for a target platform, and loads further sub-generators from the UI5 Community for TypeScript apps, launchpad plugins and libraries.community org, ui5Yeoman meta-generator for scaffolding UI5 projects
- generator-ui5-addgenerator-ui5-addA Yeoman generator that creates UI5 tooling-extension projects and manages the tooling extensions of an existing project, from the bestOfUI5 catalogue.community org, ui5Yeoman generator for UI5 tooling-extension projects
- generator-ui5-appgenerator-ui5-appA Yeoman generator, built on the official UI5 tooling, that scaffolds a new UI5 application in one pass, run as a plug-in for Easy-UI5 or standalone, ready for npm start.community org, ui5Easy-UI5 generator scaffolding a new UI5 application
- generator-ui5-controlgenerator-ui5-controlA Yeoman generator that scaffolds a UI5 custom control structured for npm distribution, with a manual test app with live reload and a Jest test suite already wired in.community org, ui5Yeoman generator for UI5 custom controls distributed via npm
- generator-ui5-library-webcgenerator-ui5-library-webcA Yeoman generator that scaffolds a UI5 library wrapping UI5 Web Components on the official UI5 tooling, run through Easy-UI5 or standalone, and served afterwards with npm start.community org, ui5Yeoman generator for UI5 libraries wrapping UI5 Web Components
- generator-ui5-librarygenerator-ui5-libraryA Yeoman generator, built on the official UI5 tooling, that scaffolds a new UI5 library as a plug-in for Easy-UI5.community org, ui5Easy-UI5 generator scaffolding a new UI5 library
- generator-ui5-ts-app-fclgenerator-ui5-ts-app-fclA generator that scaffolds a UI5 TypeScript application built around the FlexibleColumnLayout and bound to an OData service, asking for the endpoint, entity set, key and fields to show.community org, ui5Generator for a TypeScript UI5 FlexibleColumnLayout app on OData
- generator-ui5-ts-appgenerator-ui5-ts-appA Yeoman generator, built on the official UI5 CLI, that scaffolds a new UI5 application in TypeScript with its tsconfig and UI5 CLI configuration, as a plug-in for Easy-UI5.community org, ui5Easy-UI5 generator scaffolding a TypeScript UI5 application
- generator-ui5-ts-librarygenerator-ui5-ts-libraryA Yeoman generator, built on the official UI5 tooling, that scaffolds a new UI5 library in TypeScript as a plug-in for Easy-UI5.community org, ui5Easy-UI5 generator scaffolding a TypeScript UI5 library
- generator-ui5-wdi5generator-ui5-wdi5A Yeoman generator that scaffolds wdi5 end-to-end test configuration and sample tests into a UI5 app, wrapping npm init wdi5 in prompts and run through Easy-UI5.community org, ui5Yeoman generator scaffolding wdi5 test configuration into a UI5 app
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
Contributors
History in the atlas
- First seen.
For your agent
- Ref
artifact:ui5-community-generator-ui5-project- JSON
- /artifacts/ui5-community-generator-ui5-project.json
- MCP
- Connecting an agent