Build toolBuild tooltypeRuns at build time. Nothing of it ships in the deployed application.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

vite-plugin-ui5

A Vite plugin that serves a UI5 app's webapp directory through the Vite dev server, resolving sap/… imports for the UI5 loader and transpiling ESM or TypeScript to AMD at serve time.

A Vite plugin, added to vite.config.js, that serves a UI5 app's webapp directory through Vite's dev server. It reads manifest.json from that directory to detect the application namespace, resolves sap/m/Button-style imports into sap.ui.require wrappers and namespace imports into files in the webapp directory, and with isESM: true transpiles ESM and TypeScript app files to AMD at serve time through babel-plugin-transform-modules-ui5. Framework resources sit outside it: /resources/* and /test-resources/* are passed to Vite's own server.proxy, which you point at the CDN you want. Any file change inside the webapp directory triggers a full page reload, because UI5's AMD loader does not support partial module re-evaluation. It is a development tool only; the README keeps production builds on @ui5/cli.

Facts

Latestv0.2.1ReleasedLast pushLicenceMIT

Where it sits

Lives in
Provides
Build and dev-server toolingUI5Build and dev-server toolingcapabilityServing an app locally and building it for deployment — proxying a backend, transpiling, bundling, and shaping the result for whatever will host it.TypeScript supportUI5TypeScript supportcapabilityWriting apps and libraries in TypeScript — the type definitions, the module syntax the loader expects, and the build step that gets from one to the other.
Requires
ViteViteoutside the atlasthe development server it is a plugin for: it is registered in the project's Vite config and serves the webapp through it

Who is behind it

Mauricio LaufferMauricio LaufferPersonMaintains this
In the atlas: maintains 17, contributes to 41, wrote 4
@mauriciolauffer
maintainer

Before choosing this

Conditions

PracticalFunctional boundary

Production builds are not covered: the README states that ui5 build remains the build step. Granular hot module replacement is not available either, since every change inside the webapp directory reloads the whole page.

What it declares

Every artifact

Type
Build tool
Origin
Independently maintained
Runtime
Node.js

As a build tool

Distributed through
does not say

Connections3

vite-plugin-ui5 connectionsvite-plugin-ui5PROVIDES→ provides2provides stated Serves a UI5 app's webapp directory from the Vite dev server during development, detecting the application namespace from `manifest.json` and leaving `/resources/*` and `/test-resources/*` to Vite's proxy, while production builds stay with [@ui5/cli](artifact:sap-ui5-cli). mauriciolauffer/vite-plugin-ui5 — README: https://github.com/mauriciolauffer/vite-plugin-ui5 mauriciolauffer/vite-plugin-ui5 — README, configuration: https://github.com/mauriciolauffer/vite-plugin-ui5 mauriciolauffer/vite-plugin-ui5 — README, framework resources: https://github.com/mauriciolauffer/vite-plugin-ui5 mauriciolauffer/vite-plugin-ui5 — README, integration with UI5 CLI: https://github.com/mauriciolauffer/vite-plugin-ui5Build and dev-server toolingprovides stated Transpiles TypeScript app files to AMD at serve time when `isESM: true` is set, stripping type annotations and ES class syntax so the UI5 loader can load them. mauriciolauffer/vite-plugin-ui5 — README, TypeScript: https://github.com/mauriciolauffer/vite-plugin-ui5 mauriciolauffer/vite-plugin-ui5 — README, ESM: https://github.com/mauriciolauffer/vite-plugin-ui5TypeScript supportNEEDS→ needs1needs stated the development server it is a plugin for: it is registered in the project's Vite config and serves the webapp through it mauriciolauffer/vite-plugin-ui5 — README, configuration: https://github.com/mauriciolauffer/vite-plugin-ui5 vite-plugin-ui5 — npm, README: https://www.npmjs.com/package/vite-plugin-ui5Vite

Install

npm add vite-plugin-ui5

Derived from the package name. No recipe recorded; the README has the configuration.

README

quoted from mauriciolauffer/vite-plugin-ui5 under MIT, read
mauriciolauffer/vite-plugin-ui5/README.mdOn GitHub

vite-plugin-ui5

Vite plugin for SAP Fiori/UI5 applications.

Installation

npm install vite-plugin-ui5

Configuration

Add the plugin to your vite.config.js:

import { defineConfig } from "vite";
import ui5 from "vite-plugin-ui5";

export default defineConfig({
  plugins: [ui5()],
  server: {
    proxy: {
      "/resources/": "https://ui5.sap.com",
      "/test-resources/": "https://ui5.sap.com",
    },
  },
});

The plugin reads manifest.json from the webapp directory to detect the UI5 application namespace automatically. UI5 framework resources (/resources/*, /test-resources/*) are not proxied by the plugin — configure Vite's server.proxy to point them at the CDN of your choice.

Options
ui5({
  // Path to webapp directory relative to cwd.
  // Default: 'webapp'
  webappPath: "webapp",

  // Custom module path aliases.
  aliases: { "@shared": "./src/shared" },

  // Set to true when the app uses ESM syntax (import/export) or TypeScript.
  // The plugin transpiles app files to AMD at serve time
  // using babel-plugin-transform-modules-ui5 so the UI5 loader can handle them.
  // Default: false (classic UI5/AMD -> sap.ui.define)
  isESM: false,
});

Writing UI5 apps

Classic AMD (default)

Regular UI5 apps using sap.ui.define work out of the box with no extra configuration:

// Component.js
sap.ui.define(["sap/ui/core/UIComponent"], function (UIComponent) {
  return UIComponent.extend("my.app.Component", {
    metadata: { manifest: "json" },
  });
});
ESM (isESM: true)

With isESM: true, app files can be written using standard ESM syntax. The plugin transpiles them to AMD at serve time using babel-plugin-transform-modules-ui5:

// Component.js
import UIComponent from "sap/ui/core/UIComponent";

export default UIComponent.extend("my.app.Component", {
  metadata: { manifest: "json" },
});
TypeScript (isESM: true)

TypeScript files are also supported when isESM: true. Type annotations and ES class syntax are stripped and transpiled to AMD:

// Component.ts
import UIComponent from "sap/ui/core/UIComponent";

export default class Component extends UIComponent {
  public static metadata = { manifest: "json" };
}

How it works

Module resolution

The plugin resolves three categories of imports:

ImportResolved to
sap/m/ButtonAMD wrapper: sap.ui.require(["sap/m/Button"])
my/app/controller/MainFile in webappDir
Custom alias (@shared/...)Configured alias path
Framework resources

Requests to /resources/* and /test-resources/* are passed through to Vite's proxy. Configure server.proxy in your vite.config.ts to forward them to the UI5 CDN of your choice. All other webapp files are served statically, except .js/.ts files when isESM: true which pass through Vite's transform pipeline.

HMR

Any file change inside webappDir triggers a full page reload. UI5's AMD loader does not support partial module re-evaluation, so granular HMR is not possible.


Playground

AppDirectoryScriptDescription
UI5 Appplayground/ui5-app/npm run dev:ui5Classic UI5 app with UI5/AMD modules
UI5 ESM Appplayground/ui5-app-esm/npm run dev:ui5:esmESM app, transpiled to UI5/AMD by the plugin
UI5 TypeScriptplayground/ui5-typescript/npm run dev:ui5:tsTypeScript app, transpiled to UI5/AMD by the plugin

Integration with UI5 CLI

vite-plugin-ui5 is a development tool only. Production builds should continue to use @ui5/cli:

TaskDevelopmentProduction
Servevite-plugin-ui5 + Vite dev serverui5 serve
Build—ui5 build
MIT, read

History

Latest
13downloads per week, npm
Weekly downloads for vite-plugin-ui526 complete calendar weeks from 2026-05-11 to 2026-11-08; the latest total is 13.11 May – 17 May: 018 May – 24 May: 025 May – 31 May: 01 Jun – 7 Jun: 08 Jun – 14 Jun: 015 Jun – 21 Jun: 022 Jun – 28 Jun: 029 Jun – 5 Jul: 06 Jul – 12 Jul: 013 Jul – 19 Jul: 020 Jul – 26 Jul: 027 Jul – 2 Aug: 03 Aug – 9 Aug: 010 Aug – 16 Aug: 017 Aug – 23 Aug: 024 Aug – 30 Aug: 031 Aug – 6 Sept: 07 Sept – 13 Sept: 014 Sept – 20 Sept: 021 Sept – 27 Sept: 028 Sept – 4 Oct: 05 Oct – 11 Oct: 012 Oct – 18 Oct: 3219 Oct – 25 Oct: 1526 Oct – 1 Nov: 92 Nov – 8 Nov: 13

Others providing48

Build and dev-server tooling
  1. UI5 ToolsVS Code extension to serve, proxy, build and deploy UI5 projectsfrom UI5
  2. ui5-middleware-route-proxyUI5 server middleware proxying route prefixes to a backendfrom UI5
  3. ui5-task-cachebuster-indexingUI5 builder task preparing build output for the cachebusterfrom UI5
  4. ui5-task-transpile-genUI5 builder task transpiling ES6 to ES5 with Babelfrom UI5
  5. ui5-middleware-odata-recorderUI5 middleware recording OData traffic as mock server datasetsfrom UI5
  6. ui5-plugin-loaderUI5 Tooling v4 extension that registers other extensionsfrom UI5
  7. ui5-deployerUI5 Tooling module deploying Fiori/UI5 apps to SAP systemsfrom UI5
  8. ui5-task-dts-generatorUI5 builder task generating d.ts type declarationsfrom UI5
  9. ui5-task-minifierUI5 builder task minifying HTML, CSS and JSON filesfrom UI5
  10. ui5-middleware-oidcUI5 dev server middleware adding an OpenID Connect loginfrom UI5
  11. generator-ui5-library-af-deployYeoman generator for Application Frontend config in UI5 librariesfrom UI5
  12. ui5-middleware-destinationUI5 Tooling middleware proxying destinations and neo-app.json routesfrom UI5
  13. ui5-task-check-eocpUI5 build task warning when the app's UI5 version reaches EOCPfrom UI5
  14. @ui5/cliUI5 Tooling command line for project setup, dev server and buildfrom UI5
  15. ui5-task-btp-manifestUI5 Tooling task writing the service name into the importer manifestfrom UI5
  16. ui5-middleware-approuterUI5 CLI middleware proxying the dev server through @sap/approuterfrom UI5
  17. ui5-middleware-capUI5 CLI middleware running a CDS server inside the UI5 dev serverfrom UI5
  18. ui5-middleware-hmrExperimental UI5 middleware for hot module replacementfrom UI5
  19. ui5-middleware-iasyncUI5 middleware syncing interactions across browsers over websocketfrom UI5
  20. ui5-middleware-indexUI5 middleware serving a chosen welcome page at the root pathfrom UI5
  21. ui5-middleware-livereloadLive reload middleware for the UI5 dev serverfrom UI5
  22. ui5-middleware-oneloginUI5 middleware logging in with Playwright and reusing the sessionfrom UI5
  23. ui5-middleware-serveframeworkUI5 middleware serving a locally built UI5 frameworkfrom UI5
  24. ui5-middleware-servestaticUI5 middleware serving static resources from a path or npm packagefrom UI5
  25. ui5-middleware-simpleproxyDev-server middleware proxying requests to a backend systemfrom UI5
  26. ui5-middleware-ui5UI5 middleware including one UI5 application in anotherfrom UI5
  27. ui5-middleware-webjarsUI5 middleware serving static resources from JAR files (WebJars)from UI5
  28. ui5-middleware-websocketWebSocket support for Express-based dev servers such as UI5'sfrom UI5
  29. ui5-task-cachebusterUI5 builder task cachebusting standalone UI5 applicationsfrom UI5
  30. ui5-task-copyrightUI5 builder task appending copyright headers to source filesfrom UI5
  31. ui5-task-flatten-libraryUI5 builder task flattening library output for SAP NetWeaverfrom UI5
  32. ui5-task-i18ncheckUI5 builder task checking XML views for missing i18n textsfrom UI5
  33. ui5-task-minify-xmlUI5 builder task minifying XML views and fragmentsfrom UI5
  34. ui5-task-pwa-enablerUI5 builder task turning a UI5 app into a progressive web appfrom UI5
  35. ui5-task-zipperBuild task packaging the UI5 build result as a zip archivefrom UI5
  36. ui5-tooling-lessUI5 CLI extension compiling Less files into CSSfrom UI5
  37. ui5-tooling-modulesUI5 tooling extensions loading npm packages as UI5 modulesfrom UI5
  38. ui5-tooling-stringreplaceUI5 CLI extension for string replacement during the buildfrom UI5
  39. ui5-tooling-transpileUI5 CLI extension transpiling code during the UI5 buildfrom UI5
  40. @ui5/loggerInternal logger of the UI5 CLIfrom UI5
  41. @ui5/middleware-code-coverageUI5 CLI middleware for Istanbul code coveragefrom UI5
  42. @ui5/tooling-webcDeprecated UI5 Tooling extensions for UI5 Web Components wrappersfrom UI5
TypeScript support
  1. ui5-task-dts-generatorUI5 builder task generating d.ts type declarationsfrom UI5
  2. @openui5/sap.ui.coreFramework core: module loader, MVC runtime, binding, routing, themingfrom UI5
  3. babel-preset-transform-ui5Babel transformer from modern ES or TypeScript to UI5 module syntaxfrom UI5
  4. @ui5-community/jsx-runtimePlugin-based JSX runtime for UI5 views written as .tsxfrom UI5
  5. ui5-task-transpileUI5 Tooling task transpiling TypeScript and ES modulesfrom UI5
  6. @ui5/mcp-serverMCP server for UI5 development with ten toolsfrom UI5
  7. @ui5/webcomponentsSAP's UI elements as standard custom elementsfrom UI5

Details

Sources4
GitHub APIdiscovered herechecked
npm registry, vite-plugin-ui5version, releases, installschecked
github.com/git+https://github.com/mauriciolauffer/vite-plugin-ui5.gittree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

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
runtimesnode
latestv0.2.1
first release
releases and cadence4, ~0d median
discovered viaGitHub API
first seen in the atlas
ecosystem and domainui5, developer-experience
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:mauriciolauffer-vite-plugin-ui5
JSON
/artifacts/mauriciolauffer-vite-plugin-ui5.json
MCP
Connecting an agent