Craco UI5 Plugin
This is a craco plugin that builds a react app for UI5
via create-react-app version 4.
Installation
- Follow
the
craco
Installation Instructions
to install the craco
package with modified scripts in your package.json
. - Create a
craco.config.js
file. - Install
@cpro-js/craco-plugin-ui5
:
yarn add --dev @cpro-js/craco-plugin-ui5
- Initialize the craco plugin in your
craco.config.js
craco.config.js
module.exports = {
plugins: [
{
plugin: require("@cpro-js/craco-plugin-ui5"),
options: {
appId: "Z_YOUR_APP_ID",
appTitle: "Your App Title",
ui5Version: "1.84.14",
sandbox: {
theme: "sap_fiori_3",
tiles: [
{
semanticObject: "ReactApp",
action: "display",
title: "React App 1",
subtitle: "React App Example",
info: "React App Example",
icon: "sap-icon://decision",
defaultParameters: {
myValue: "test",
},
additionalParameters: true,
},
{
semanticObject: "ReactApp",
action: "manage",
title: "React App 2",
subtitle: "React App Example",
info: "React App Example",
icon: "sap-icon://complete",
},
],
},
manifest: {
"sap.ui": {
fullWidth: true,
},
"sap.ui5": {
dependencies: {
minUI5Version: "1.76.0",
},
contentDensities: {
compact: true,
cozy: true,
},
},
},
},
},]
};
- Create a secondary entry point for UI5 initialization:
src/index.ui5.tsx
import { registerCustomApp } from "@cpro-js/craco-plugin-ui5/runtime";
import React from "react";
import ReactDOM from "react-dom";
registerCustomApp(options => {
const { rootNode, } = options;
ReactDOM.render(
<div>Hello UI5!</div>,
rootNode
);
return () => {
ReactDOM.unmountComponentAtNode(rootNode);
};
});
- Launch app & open browser