Skip to main content

sapui5-cli

Manages SAPUI5/OpenUI5 projects using the UI5 Tooling CLI (@ui5/cli). Use when initializing UI5 projects, configuring ui5.yaml or ui5-workspace.yaml files, building UI5 applications or libraries, running development servers with HTTP/2 support, creating custom build tasks or server middleware, managing workspace/monorepo setups, troubleshooting UI5 CLI errors, migrating between UI5 CLI versions, or optimizing build performance. Supports both OpenUI5 and SAPUI5 frameworks with complete configuration and extensibility guidance.

소스 정보

저장소
secondsky/sap-skills
최근 소스 활동
2026년 8월 6일 23:39
감지된 SKILL.md 언어
영어
스타
466
포크
120

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
20 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
sapui5-cli
description
Manages SAPUI5/OpenUI5 projects using the UI5 Tooling CLI (@ui5/cli). Use when initializing UI5 projects, configuring ui5.yaml or ui5-workspace.yaml files, building UI5 applications or libraries, running development servers with HTTP/2 support, creating custom build tasks or server middleware, managing workspace/monorepo setups, troubleshooting UI5 CLI errors, migrating between UI5 CLI versions, or optimizing build performance. Supports both OpenUI5 and SAPUI5 frameworks with complete configuration and extensibility guidance.
license
GPL-3.0
metadata
{"maintainer":"Eduard Jiglau","maintainer_email":"hello@sap-ai-skills.com","website":"https://sap-ai-skills.com","version":"2.4.1","ui5_cli_version":"4.0.55","last_verified":"2026-05-31","official_docs":"https://ui5.github.io/cli/stable/"}
# SAPUI5/OpenUI5 CLI Management Skill ## Related Skills - **sap-dependency-security**: Use for secure CLI/toolchain upgrades, lockfile hardening, and deterministic installs in UI5 tooling workflows ## Table of Contents - [Overview](#overview) - [When to Use This Skill](#when-to-use-this-skill) - [Quick Start Workflow](#quick-start-workflow) - [Project Types](#project-types) - [Bundled Resources](#bundled-resources) ## Overview This skill provides comprehensive guidance for working with the UI5 CLI (UI5 Tooling), the official command-line interface for developing, building, and deploying SAPUI5 and OpenUI5 applications and libraries. **Current CLI Version**: 4.0.55 (verified via npm on 2026-05-31) **Node.js Requirements**: v20.11.0+ or v22.0.0+ (v21 not supported) **npm Requirements**: v8.0.0+ ## When to Use This Skill Use this skill when you need to: - **Initialize** new UI5 projects or enable CLI support for existing projects - **Configure** ui5.yaml for applications, libraries, theme-libraries, or modules - **Build** UI5 projects with optimization, bundling, and minification - **Run** local development servers with HTTP/2, SSL, and CSP support - **Extend** build processes with custom tasks or server middleware - **Manage** monorepo/workspace configurations with multiple UI5 projects - **Troubleshoot** common UI5 CLI errors and build issues - **Migrate** between CLI versions (v1 → v2 → v3 → v4) - **Optimize** build performance and analyze dependencies ## Quick Start Workflow ### New Project Setup ```bash # 1. Install UI5 CLI (choose one) npm install --global @ui5/cli # Global installation npm install --save-dev @ui5/cli # Project-level installation # 2. Initialize project (if new) npm init --yes # Initialize npm ui5 init # Create ui5.yaml # 3. Select framework variant ui5 use openui5@latest # For OpenUI5 ui5 use sapui5@latest # For SAPUI5 # 4. Add framework libraries ui5 add sap.ui.core sap.m sap.ui.table themelib_sap_fiori_3 # 5. Start development ui5 serve # Start dev server ui5 serve --open index.html # Start and open browser # 6. Build for production ui5 build --all # Build with dependencies ui5 build --clean-dest # Clean before building ``` ### Existing Project Setup ```bash # 1. Enable CLI support ui5 init # 2. Configure framework (if ui5.yaml exists) ui5 use openui5@latest # or sapui5@latest # 3. Verify setup ui5 tree # Show dependency tree ui5 serve # Test development server ``` ## Project Types UI5 CLI supports four project types, each with specific configurations: ### 1. Application Standard UI5 applications with a `webapp` directory. - Virtual path mapping: `webapp/` → `/` - Generates Component-preload.js when Component.js exists - See `templates/ui5.yaml.application` for configuration template ### 2. Library Reusable component libraries for sharing across projects. - Virtual path mappings: `src/` → `/resources`, `test/` → `/test-resources` - Requires namespace directory structure (e.g., `src/my/company/library/`) - See `templates/ui5.yaml.library` for configuration template ### 3. Theme Library Provides theming resources for libraries. - Same virtual mappings as standard libraries - Resources organized by namespace (e.g., `my/library/themes/custom_theme/`) - See `references/configuration.md` for detailed configuration ### 4. Module Third-party resources with flexible path mapping. - Resources copied without modification - Custom virtual-to-physical path mappings - See `references/project-structures.md` for module configuration ## Core Commands Reference ### Project Initialization ```bash ui5 init # Initialize UI5 CLI configuration ui5 use <framework>[@version] # Set framework (openui5/sapui5) ui5 add <libraries...> # Add framework libraries ui5 remove <libraries...> # Remove framework libraries ``` ### Development ```bash ui5 serve [options] # Start development server --port <number> # Specify port (default: 8080) --open <path> # Open browser to path --h2 # Enable HTTP/2 --accept-remote-connections # Allow non-localhost access ui5 tree [options] # Display dependency tree --flat # Show flat list --level <number> # Limit tree depth ``` ### Building ```bash ui5 build [child-command] [options] # Build project preload # Create preload bundles (default) self-contained # Create standalone bundle jsdoc # Generate JSDoc documentation --all # Include all dependencies --include-dependency <names> # Include specific dependencies --exclude-dependency <names> # Exclude dependencies --dest <path> # Output directory (default: ./dist) --clean-dest # Clean destination before build --create-build-manifest # Store build metadata --experimental-css-variables # Generate CSS variable artifacts [experimental] ``` ### Configuration ```bash ui5 config set <key> [value] # Set configuration value ui5 config get <key> # Get configuration value ui5 config list # List all settings # Common configurations ui5 config set ui5DataDir /path/.ui5 # Change cache directory ``` ### Utility ```bash ui5 versions # Display all module versions ui5 --help # Display help ui5 --version # Display version ``` For complete command reference, see `references/cli-commands.md`. ## Configuration File Structure ### Basic ui5.yaml Structure ```yaml specVersion: "4.0" # Specification version (required) type: application # Project type (required) metadata: name: my.project.name # Project name (required) copyright: "© ${currentYear} Company" # Optional copyright framework: name: SAPUI5 # OpenUI5 or SAPUI5 version: "1.120.0" # Framework version libraries: - name: sap.ui.core - name: sap.m - name: sap.ui.table - name: themelib_sap_fiori_3 optional: true # Optional library resources: configuration: paths: webapp: webapp # Path mapping propertiesFileSourceEncoding: UTF-8 # Encoding (default: UTF-8) builder: resources: excludes: - "index.html" # Exclude from build - "/resources/my/project/test/**" server: settings: httpPort: 8080 # HTTP port httpsPort: 8443 # HTTPS port ``` For complete configuration reference, see `references/configuration.md`. ## Progressive Disclosure: Detailed References This main skill file provides essential workflows and quick reference. For detailed information on specific topics, refer to these reference files: ### Core References - **`references/cli-commands.md`**: Complete CLI command reference with all options and examples - **`references/configuration.md`**: Comprehensive ui5.yaml configuration guide (includes workspace config) - **`references/project-structures.md`**: Detailed project types with directory structures and build output styles ### Advanced Topics - **`references/extensibility.md`**: Custom tasks, middleware, and project shims with complete API documentation - **`references/filesystem-api.md`**: Complete FileSystem API for custom task/middleware development - **`references/build-process.md`**: Complete build process including tasks, minification, source maps, and bundling - **`references/server-features.md`**: Complete server documentation with middleware stack, HTTP/2, SSL, and CSP - **`references/code-analysis.md`**: Dependency analyzers, JSDoc generation, and code analysis features - **`references/es-support.md`**: Complete ECMAScript version support, restrictions, and module format requirements ### Performance & Troubleshooting - **`references/benchmarking.md`**: Performance testing and benchmarking with hyperfine - **`references/migration-guides.md`**: Complete version migration guides (v1→v2→v3→v4) - **`references/troubleshooting.md`**: Common issues, errors, and solutions with exact error messages ## Common Workflows ### Workflow 1: Setting Up a New Application **When to use**: Starting a new SAPUI5/OpenUI5 application from scratch. **Steps**: 1. Initialize npm project: `npm init --yes` 2. Install UI5 CLI: `npm install --save-dev @ui5/cli` 3. Initialize UI5 configuration: `ui5 init` 4. Select framework: `ui5 use sapui5@latest` (or `openui5@latest`) 5. Add required libraries: `ui5 add sap.ui.core sap.m themelib_sap_fiori_3` 6. Create application structure (webapp/, Component.js, manifest.json) 7. Start development server: `ui5 serve` 8. Commit configuration: `git add ui5.yaml package.json && git commit` ### Workflow 2: Enabling CLI for Existing Project **When to use**: Adding UI5 CLI support to an existing UI5 project. **Steps**: 1. Navigate to project root 2. Run `ui5 init` to create ui5.yaml 3. Configure framework: `ui5 use sapui5@latest` 4. Add libraries: `ui5 add sap.ui.core sap.m sap.ui.table` 5. Adjust ui5.yaml `resources.configuration.paths` if needed 6. Test with `ui5 serve` 7. Build with `ui5 build --all` ### Workflow 3: Creating a Custom Build Task **When to use**: Extending the build process with custom processing. **Steps**: 1. Create task file (e.g., `lib/tasks/customTask.js`) 2. Implement task using Task API (see `templates/custom-task-template.js`) 3. Create task extension in ui5.yaml or separate file 4. Configure task in builder.customTasks section 5. Test with `ui5 build` 6. For details, see `references/extensibility.md` ### Workflow 4: Setting Up a Workspace/Monorepo **When to use**: Managing multiple related UI5 projects in a single repository. **Steps**: 1. Create ui5-workspace.yaml in root project 2. Define workspace name and dependency resolutions 3. Point to local project directories using relative paths 4. Use `--workspace <name>` flag to activate specific workspace 5. Run `ui5 tree` to verify dependency resolution 6. For details, see `references/configuration.md` (workspace section) ### Workflow 5: Migrating to UI5 CLI v4 **When to use**: Upgrading from UI5 CLI v3 to v4. **Prerequisites**: - Verify Node.js v20.11.0+ or v22.0.0+ - Verify npm v8.0.0+ **Steps**: 1. Update CLI: `npm install --save-dev @ui5/cli@latest` 2. Update specVersion in ui5.yaml to `"4.0"` 3. Review breaking changes in `references/migration-guides.md` 4. Remove `usePredefineCalls` bundle option if present 5. Update bundle sections to use `async: true` for modern loading 6. Test build: `ui5 build --all` 7. Test server: `ui5 serve` 8. Verify application functionality ## Decision Trees ### Framework Selection Decision **Question**: Which framework should I use? ``` Does project need SAP-specific components (e.g., sap.ui.comp, sap.ushell)? ├─ YES → Use SAPUI5 │ └─ Command: ui5 use sapui5@latest └─ NO → Can use OpenUI5 └─ Command: ui5 use openui5@latest Note: SAPUI5 projects can depend on OpenUI5, but not vice versa. ``` ### Build Type Decision **Question**: Which build type should I use? ``` What is the deployment target? ├─ Standard deployment (with separate framework loading) │ └─ Use: ui5 build --all │ ├─ Standalone deployment (single bundle with framework) │ └─ Use: ui5 build self-contained --all │ ├─ Documentation generation │ └─ Use: ui5 build jsdoc │ └─ Development/testing (no build needed) └─ Use: ui5 serve ``` ### Custom Extension Decision **Question**: Should I create a custom task or middleware? ``` What do you need to extend? ├─ Build process (modify/generate resources during build) │ └─ Create custom task (see templates/custom-task-template.js) │ Examples: Transpiling, image optimization, file generation │ ├─ Development server (modify requests/responses during dev) │ └─ Create custom middleware (see templates/custom-middleware-template.js) │ Examples: Proxying, authentication, dynamic content │ └─ Third-party library configuration └─ Create project shim (see references/extensibility.md) Examples: Configuring non-UI5 npm packages ``` ## Templates This skill provides working templates for common configurations: - **`templates/ui5.yaml.application`**: Complete application configuration - **`templates/ui5.yaml.library`**: Complete library configuration - **`templates/ui5-workspace.yaml`**: Monorepo workspace setup - **`templates/custom-task-template.js`**: Custom build task boilerplate - **`templates/custom-middleware-template.js`**: Custom server middleware boilerplate ## Important Notes ### Specification Versions UI5 CLI uses specification versions to manage features: - **4.0**: Current major version (verified CLI v4.0.55, requires Node.js v20.11.0+) - **3.0-3.2**: Compatible with CLI v3.0.0+ - **2.0-2.6**: Compatible with CLI v2.0.0+ - **0.1-1.1**: Legacy versions (automatic migration attempted) Always use the latest specVersion for new projects. ### Framework Version Requirements - **OpenUI5**: Minimum version 1.52.5 - **SAPUI5**: Minimum version 1.76.0 ### Development vs. Build **Important**: During development, always use `ui5 serve` instead of `ui5 build`. Building should only occur when deploying to production. The development server provides: - Faster reload times - On-the-fly resource processing - Better debugging experience - Automatic dependency resolution ### Global vs. Local Installation When both global and local UI5 CLI installations exist, the local version takes precedence automatically. This allows different projects to use different CLI versions. Override behavior: `UI5_CLI_NO_LOCAL=X ui5 serve` ### Cache Management UI5 CLI caches framework versions in `~/.ui5/` (configurable via `ui5DataDir`). Clear cache: `rm -rf ~/.ui5/framework/` ## Known Issues & Limitations ### ECMAScript Module Limitations UI5 CLI **does not support** JavaScript modules with `import`/`export` syntax. All modules must use `sap.ui.define` format. **Unsupported**: ```javascript import Module from './module.js'; export default MyClass; ``` **Supported**: ```javascript sap.ui.define(['./module'], function(Module) { return MyClass; }); ``` ### Template Literal Restrictions Expressions in template literals cannot be used in: - Dependency declarations - Smart Template names - Library initialization calls **Unsupported**: ```javascript sap.ui.define([`modules/${moduleName}`], ...); // Will fail ``` ### Bundling Restrictions (v4.0+) JavaScript modules requiring 'top level scope' cannot be bundled as strings. They will be omitted from bundles with error logging. ### Manifest Version Compatibility For UI5 1.71, manifest `_version` property must be ≤ 1.17.0 for `supportedLocales` generation. Update manifest version to match UI5 framework version. ## Troubleshooting Quick Reference For detailed troubleshooting, see `references/troubleshooting.md`. ### Common Issues
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기