Code Monkey home page Code Monkey logo

generator-easy-ui5's Introduction

Easy UI5 Generator

NPM version Build Status Dependency Status License Status REUSE status

Description

Easy UI5 (easy-ui5) ๐Ÿ’™ is a Yeoman generator which enables you to create simple SAPUI5/OpenUI5-based web-apps and other UI5-related projects within seconds.

This generator has been created to simplify the creation of your UI5 prototypes. Now you can scaffold simple UI5 projects from the shell/terminal of your choice. The current best practices (such as async) are already baked into our templates so you don't have to worry about the definition of the metadata files.

The purpose of the project subgenerator is to guide you on your first steps with SAPUI5 and SAP BTP deployments. Once you are familiar with those technologies, you might want to tweak the projects to adapt them for productive use-cases (such as continuous deployment pipelines and full i18n).

โš ๏ธ Starting with Easy UI5 v3, all templates will be outsource to repositories in the UI5 Community. This project is from now on a shell that will offer all generators hosted on that GitHub org. Easy UI5 will download and install these repositories when needed.

By default, it will download the repository generator-ui5-project which contains the templates that were previously integrated in Easy UI5 < 3.

Requirements

  • Get Node.js (:warning: version 18 or higher)

Download and Installation

  1. Install the generator
    npm install -g yo generator-easy-ui5
  2. Verify your installation to see if Yeoman has been installed correctly
    yo
    Make sure you see the easy-ui5 generator listed.

Bootstrapping a new UI5 project

Create your first UI5 App within a few seconds!

  1. Scaffold your UI5 project
    yo easy-ui5 project
    
  2. Answer the prompts to create your new project
  3. Run it locally
    cd <your project directory>
    npm start # or "yarn start"
    

Target platforms

During the prompting phase, the generator will ask on which target platform your app should run. Currently, the following options are available:

  • Static webserver
  • SAP BTP
  • SAP HANA XS Advanced
  • SAP NetWeaver

Have a look at this plugin project for more usage instruction and information about the available subcommands.

More generators

And this is just the start!

We made Easy UI5 extensible, so that the entire UI5 Community can build additional plugins to scaffold any UI5-related development activity.

By default, this generator comes with the project-creation-plugin but there are many others as well:

To download and use any of the plugins above, run the following command

yo easy-ui5 [project|library] # this is the name of the repositorty without the "generator-ui5-" prefix

Calling generators

Run the following command to see all subgenerators of a given plugin

yo easy-ui5 [project|library] --list

Once you decided on the subgenerator, run:

Run the following command to see all subgenerators of a given plugin

yo easy-ui5 [project|library] <sub-generator-id>

Proxy settings

If you are running Easy UI5 behind a coporate proxy, just use the default proxy environment variables for Node.js to configure your corporate proxy:

  • HTTP_PROXY: Specify the value to use as the HTTP proxy for all connections, e.g., HTTP_PROXY="http://proxy.mycompany.com:8080/".
  • HTTPS_PROXY: Specify the value to use as the HTTPS proxy for all connections, e.g., HTTPS_PROXY="http://proxy.mycompany.com:8080/".
  • NO_PROXY: Define the hosts that should bypass the proxy, e.g., NO_PROXY="localhost,.mycompany.com,192.168.6.254:80".

In addition, Easy UI5 also supports proxy configuration from the .npmrc configuration:

http-proxy=http://proxy.mycompany.com:8080/
https-proxy=http://proxy.mycompany.com:8080/
proxy=http://proxy.mycompany.com:8080/
no-proxy=localhost,.mycompany.com,192.168.6.254:80

This configuration is shared with npm itself since this proxy configuration is used to download the packages from npm.

Proxies can be passed as env variables or as npm config options. The highest precedence have the GLOBAL_AGENT_* env variables before the regular env variables followed by the npm configuration options, e.g.:

  1. env: GLOBAL_AGENT_HTTP_PROXY
  2. env: HTTP_PROXY
  3. npm: http-proxy
  4. npm: proxy

How to obtain 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 easy-ui5 generator equally.

Please follow our instructions if you would like to contribute.

generator-easy-ui5's People

Contributors

cpa-gecko avatar dependabot[bot] avatar dtinth avatar flovogt avatar geert-janklaps avatar gnagnohtml avatar i-pip avatar iobert avatar jonathanbaker7 avatar marcelschork avatar matz3 avatar mjturner avatar petermuessig avatar schmelto avatar stesap avatar tsaleksandrova avatar uxkjaer avatar vobu avatar wridgeu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

generator-easy-ui5's Issues

generator-easy-ui5 installation failed

Hi all,

Trying to install npm install -g generator-easy-ui5 the following error messages occur:

error path C:\node-v16.13.0-win-x64\node_modules\generator-easy-ui5
error command failed
error command C:\WINDOWS\system32\cmd.exe /d /s /c node generators/app/postinstall
error C:\node-v16.13.0-win-x64\node_modules\generator-easy-ui5\node_modules\@octokit\request\dist-node\index.js:108
error     throw new requestError.RequestError(error.message, 500, {
error           ^
error
error RequestError [HttpError]: request to https://api.github.com/repos/ui5-community/generator-ui5-project/branches/main failed, reason: connect ECONNREFUSED 140.82.121.5:443
error     at C:\node-v16.13.0-win-x64\node_modules\generator-easy-ui5\node_modules\@octokit\request\dist-node\index.js:108:11
error     at processTicksAndRejections (node:internal/process/task_queues:96:5)
error     at async C:\node-v16.13.0-win-x64\node_modules\generator-easy-ui5\generators\app\postinstall.js:44:21 {
error   status: 500,
error   request: {
error     method: 'GET',
error     url: 'https://api.github.com/repos/ui5-community/generator-ui5-project/branches/main',
error     headers: {
error       accept: 'application/vnd.github.v3+json',
error       'user-agent': 'generator-easy-ui5 octokit-rest.js/18.12.0 octokit-core.js/3.5.1 Node.js/16.13.0 (win32; x64)'
error     },
error     request: { hook: [Function: bound bound register] }
error   }
error }
verbose exit 1

I also tried to install another generator, for instance npm install -g generator-jhipster and no error messages occur:

npm install -g generator-jhipster
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated [email protected]: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

added 573 packages, and audited 574 packages in 35s

59 packages are looking for funding
  run `npm fund` for details

9 moderate severity vulnerabilities

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

What am I doing wrong?

Thanks

test folder is generated directly to the project and not within the webapp folder

Easy-Ui5 version: latest

OS/version: windows 10, sap image, latest

Browser/version (+device/version): chromes 87.0.4280.141

Steps to reproduce the problem:

  1. I open a project without tests in VS code and run yo easy-ui5:opa5
  2. The test folder is created on the project level

What is the expected result?
3. The Fiori pipeline requires a different folder setep
https://github.wdf.sap.corp/pages/S4FIORI-CD/fiori-pipeline-docs/stages/karma/

The test folder should needs to be within the webapp folder.

What happens instead?

The test folder is directly on the project

Any other information? (attach screenshot if possible)

You can use the project, remove the test folder and remove the test folder
https://github.wdf.sap.corp/d050449/ASEUI5Training

"yo easy-ui5 project" ends with error

Easy-Ui5 version:

4.30

Run yo easy-ui5 --plugins to print all relevant version strings

OS/version:

Edition Windows 10 Enterprise
Version 20H2
Installed on โ€Ž5/โ€Ž12/โ€Ž2021
OS build 19042.1526
Experience Windows Feature Experience Pack 120.2212.4170.0

Browser/version (+device/version):

Steps to reproduce the problem:

  1. Step 1
    C:\Users\IXXXXXX>yo easy-ui5 --plugins
    Error easy-ui5 --plugins

Unexpected token '.'
3. Step 2
C:\Users\I501000>yo easy-ui5 project
Error easy-ui5 project

Unexpected token '.'

What is the expected result?

generate a ui5 project

What happens instead?

ends with error

Any other information? (attach screenshot if possible)

image

yo easy-ui5 project - Fails when behind corporate proxy

When behind the corporate proxy the generator fails with the following error:
Failed to connect to GitHub to retrieve available repository for "ui5-community" organization! Run with --verbose for details! RequestError [HttpError]: request to https://api.github.com/orgs/ui5-community/repos failed, reason: connect ECONNREFUSED 52.63.231.178:443 at C:\Users\sattsaevk\AppData\Roaming\npm\node_modules\generator-easy-ui5\node_modules\@octokit\request\dist-node\index.js:108:11 at processTicksAndRejections (internal/process/task_queues.js:95:5) at async module.exports.prompting (C:\Users\sattsaevk\AppData\Roaming\npm\node_modules\generator-easy-ui5\generators\app\index.js:108:18) { status: 500, request: { method: 'GET', url: 'https://api.github.com/orgs/ui5-community/repos', headers: { accept: 'application/vnd.github.v3+json', 'user-agent': 'generator-easy-ui5:3.0.1 octokit-rest.js/18.6.7 octokit-core.js/3.5.1 Node.js/14.17.0 (win32; x64)' }, request: { hook: [Function: bound bound register] } } }

The 'npm config proxy ' has been added but does not solve the issue.

// create the octokit client to retrieve the generators from GH org const octokit = new Octokit({ userAgent: ${this.rootGeneratorName()}:${this.rootGeneratorVersion()}, auth: this.options.ghAuthToken, });

Needs to be passed on a proxy?

Exatraneous CF Destination middleware fรผr Static websever

Easy-Ui5 version: Latest

Browser/version (+device/version):

Steps to reproduce the problem:

  1. Generate Scaffolding for openui5 webapp using yo easy-ui5
  2. Select Static Webserver
  3. Select OpenUI5 as CDN
  4. Run

What is the expected result?
The UI5.yaml should not have middleware dependencies to CF(Specific: cf-destination)

What happens instead?
The ui5.yaml metadata uses a middleware configuration to cf-destionation, although it was not part of the package.json. This missing dependency prevents server from starting.

ui5.yaml: - name: ui5-middleware-cfdestination afterMiddleware: compression configuration: debug: true port: 1091 xsappJson: approuter/xs-app.json destinations: []

.yo-rc.json:
{ "generator-easy-ui5": { "projectname": "myApp", "namespace": "com.myorg", "platform": "Static webserver", "viewtype": "XML", "viewname": "Main", "ui5libs": "Content delivery network (OpenUI5)", "newdir": true } }

Error attempting to generate project

Easy-Ui5 version:

[email protected]

OS/version:

Windows 10 (64bit)

Browser/version (+device/version):

Microsoft Edge
Version 91.0.864.41 (Official build) (64-bit)

Steps to reproduce the problem:

  1. Install yo and easy-ui5 via NPM (npm install -g yo generator-easy-ui5)
  2. Run project generator (yo easy-ui5 project)

What is the expected result?

The project is generated successfully.

What happens instead?

The following error occurs:

Error easy-ui5 project

Cannot find module 'object-assign-deep'
Require stack:

  • ...\AppData\Roaming\npm\node_modules\generator-easy-ui5\plugin-generators\generator-ui5-project\helpers\fileaccess.js
  • ...\AppData\Roaming\npm\node_modules\generator-easy-ui5\plugin-generators\generator-ui5-project\generators\additionalmodules\index.js
  • ...\AppData\Roaming\npm\node_modules\generator-easy-ui5\node_modules\yeoman-environment\lib\util\esm.js
  • ...\AppData\Roaming\npm\node_modules\generator-easy-ui5\node_modules\yeoman-environment\lib\store.js
  • ...\AppData\Roaming\npm\node_modules\generator-easy-ui5\node_modules\yeoman-environment\lib\environment.js
  • ...\AppData\Roaming\npm\node_modules\generator-easy-ui5\generators\app\index.js
  • ...\AppData\Roaming\npm\node_modules\yo\node_modules\yeoman-environment\lib\util\esm.js
  • ...\AppData\Roaming\npm\node_modules\yo\node_modules\yeoman-environment\lib\store.js
  • ...\AppData\Roaming\npm\node_modules\yo\node_modules\yeoman-environment\lib\environment.js
  • ...\AppData\Roaming\npm\node_modules\yo\lib\router.js
  • ...\AppData\Roaming\npm\node_modules\yo\lib\cli.js

Any other information? (attach a screenshot if possible)

ui5-error

npm start failed

Easy-Ui5 version:

Node.js: v16.14.0
yeoman-environment: 3.9.1
generator-easy-ui5: 3.2.2
home: /root/.nvm/versions/node/v16.14.0/lib/node_modules/generator-easy-ui5
pluginsHome: /root/.npm/_generator-easy-ui5/plugin-generators

Available generators:
  - generator-ui5-project: 0.1.1

OS/version:

SLES15-SP1

Browser/version (+device/version):

Steps to reproduce the problem:

  1. install yo and generator-easy-ui5
  2. create your new project
  3. npm start

What is the expected result?

the project should start as expected, because I totally do the steps as instructions.

What happens instead?

โš ๏ธ Process Failed With Error

Any other information? (attach screenshot if possible)

verb normalizer:projectPreprocessor Dependency of project @openui5/themelib_sap_fiori_3, "@openui5/sap.ui.unified": Distance to root of 2. Will be replaced by project with same ID and distance to root of undefined.
verb types:library:LibraryFormatter Could not find (optional) test directory of project @openui5/sap.ui.core: /root/.ui5/framework/packages/@openui5/sap.ui.core/1.96.0/test
verb types:library:LibraryFormatter Formatting library project sap.ui.core...
verb types:library:LibraryFormatter Ignoring 'test' directory for project sap.ui.core. Either no setting was provided or the path not found.
verb types:library:LibraryFormatter Could not find (optional) test directory of project @openui5/sap.ui.layout: /root/.ui5/framework/packages/@openui5/sap.ui.layout/1.96.0/test
verb types:library:LibraryFormatter Formatting library project sap.ui.layout...
verb types:library:LibraryFormatter Ignoring 'test' directory for project sap.ui.layout. Either no setting was provided or the path not found.
verb types:themeLibrary:ThemeLibraryFormatter Could not find (optional) test directory of project @openui5/themelib_sap_fiori_3: /root/.ui5/framework/packages/@openui5/themelib_sap_fiori_3/1.96.0/test
verb types:themeLibrary:ThemeLibraryFormatter Formatting theme-library project themelib_sap_fiori_3...
verb types:themeLibrary:ThemeLibraryFormatter Ignoring 'test' directory for project themelib_sap_fiori_3. Either no setting was provided or the path not found.
verb types:library:LibraryFormatter Could not find (optional) test directory of project @openui5/sap.m: /root/.ui5/framework/packages/@openui5/sap.m/1.96.0/test
verb types:library:LibraryFormatter Formatting library project sap.m...
verb types:library:LibraryFormatter Ignoring 'test' directory for project sap.m. Either no setting was provided or the path not found.
verb types:library:LibraryFormatter Namespace resolution from manifest.json failed for project sap.ui.layout: Could not find manifest.json file for project sap.ui.layout
verb types:library:LibraryFormatter Namespace resolution from .library failed for project sap.ui.layout: Could not find .library file for project sap.ui.layout
verb types:library:LibraryFormatter Failed to resolve namespace of project sap.ui.layout from manifest.json or .library file. Falling back to library.js file path...
verb types:library:LibraryFormatter Namespace resolution from .library failed for project sap.m: Could not find .library file for project sap.m
verb types:library:LibraryFormatter Namespace resolution from manifest.json failed for project sap.m: Could not find manifest.json file for project sap.m
verb types:library:LibraryFormatter Failed to resolve namespace of project sap.m from manifest.json or .library file. Falling back to library.js file path...
verb types:library:LibraryFormatter Namespace resolution from manifest.json failed for project sap.ui.core: Could not find manifest.json file for project sap.ui.core
verb types:library:LibraryFormatter Namespace resolution from .library failed for project sap.ui.core: Could not find .library file for project sap.ui.core
verb types:library:LibraryFormatter Failed to resolve namespace of project sap.ui.core from manifest.json or .library file. Falling back to library.js file path...
verb types:library:LibraryFormatter Deriving namespace for project sap.m from path of library.js file
verb types:library:LibraryFormatter Namespace of project sap.m is sap/m
verb types:library:LibraryFormatter No preload excludes defined in project configuration of framework library sap.m. Falling back to .library...

โš ๏ธ  Process Failed With Error

Error Message:
Could not find .library file for project sap.m

Stack Trace:
Error: Could not find .library file for project sap.m
    at /data/ui5/why.ui5Demo/node_modules/@ui5/cli/node_modules/@ui5/builder/lib/types/library/LibraryFormatter.js:397:11
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async LibraryFormatter.getNamespaceFromDotLibrary (/data/ui5/why.ui5Demo/node_modules/@ui5/cli/node_modules/@ui5/builder/lib/types/library/LibraryFormatter.js:251:42)
    at async Promise.all (index 1)
    at async LibraryFormatter.getNamespace (/data/ui5/why.ui5Demo/node_modules/@ui5/cli/node_modules/@ui5/builder/lib/types/library/LibraryFormatter.js:115:8)
    at async LibraryFormatter.format (/data/ui5/why.ui5Demo/node_modules/@ui5/cli/node_modules/@ui5/builder/lib/types/library/LibraryFormatter.js:39:33)
    at async ProjectPreprocessor.applyType (/data/ui5/why.ui5Demo/node_modules/@ui5/cli/node_modules/@ui5/project/lib/projectPreprocessor.js:334:3)
    at async /data/ui5/why.ui5Demo/node_modules/@ui5/cli/node_modules/@ui5/project/lib/projectPreprocessor.js:92:7
    at async Promise.all (index 1)
    at async ProjectPreprocessor.processTree (/data/ui5/why.ui5Demo/node_modules/@ui5/cli/node_modules/@ui5/project/lib/projectPreprocessor.js:62:4)
    at async Object.generateProjectTree (/data/ui5/why.ui5Demo/node_modules/@ui5/cli/node_modules/@ui5/project/lib/normalizer.js:42:21)
    at async Object.serve.handler (/data/ui5/why.ui5Demo/node_modules/@ui5/cli/lib/cli/commands/serve.js:91:15)

If you think this is an issue of the UI5 Tooling, you might report it using the following URL: https://github.com/SAP/ui5-tooling/issues/new/choose

Error Unexpected token '.' when running the easy-ui5 generator

Easy-Ui5 version:

3.2.2

OS/version:

Kubuntu 21.04

Steps to reproduce the problem:

Run yo easy-ui5

What is the expected result?

Further prompts to create a project

What happens instead?

Displays error Unexpected token '.'

Any other information? (attach screenshot if possible)

grafik

Add standard neo app templates like Worklist, Master-Detail, list report and Fiori Elements

Easy-Ui5 version: 2.1.0

What is the expected result?
Generate neo-app templates by running the generators like
yo easy-ui5:worklist to get the WebIDE templates. It will ask for server details (and other info similar to the templating wizard) and generate the worklist and object views.

I have plans to create all the neo-app generators including the Fiori Elements ones. Let me know if this is a direction you intend to explore or is this only for CF.

Please support CF with html5-repo and MULTIPLE ui5 apps

Easy-Ui5 version: 1.2.0

Steps to reproduce the problem:

  1. Generate for CF wirh html5-repo

What is the expected result?
mta.yaml in main directory, fiori app with ui5.yaml in subdirectory, so additional fiori apps can be added in further subdirectories beneath main directory (this is the idea of the html5-repo usage anyway, ie to hve more than one fiori app)

What happens instead?
mta.yaml and ui5.yaml end up in same directory, second fiori app can't be added easily.

"Application Router @ Cloud Foundry" fails to start locally

Easy-Ui5 version:
1.3.3

OS/version:
Win 10

Browser/version (+device/version):
n/a

Steps to reproduce the problem:

  1. "yo easy-ui5"
{
  "generator-easy-ui5": {
    "projectname": "myApp",
    "namespace": "com.me",
    "platform": "Application Router @ Cloud Foundry",
    "viewtype": "XML",
    "viewname": "View",
    "ui5libs": "Content delivery network (SAPUI5)",
    "newdir": false,
    "namespaceURI": "com.me"
  }
}
  1. "npm run start"
    fails with error:
    xs-app.json/routes/0: Format validation failed (approuter\webapp is not a directory)

  2. "npm run deploy"
    works fine

What is the expected result? What happens instead?

When I change localDir in approuter/xs-app.json as follows:
"localDir": "../webapp"
"npm run start" runs successfully but "npm run deploy" fails while starting the deployed app.

Possible solution

"npm run start" works fine with an empty approuter/webapp folder. So maybe this could be created during the generation process.

The content of the approuter/webapp folder should not be in the git repo, so maybe this can be added to .gitignore by default.

Support for generating Fiori Elements templates

When using easy-ui5 generator, currently it generates a blank SAPUI5 application.
Personally I think it would be nice to have the templates available which for example are available in Web IDE:
image

I would definitely save some time when creating a new project based on Fiori Elements

Enable UI5 library development

I created a custom generator to generate an initial template for UI5 library development. (more info here)
Initially I was thinking, library development is quite different from regular app development. So wasn't planning on proposing to integrate this functionality in the Easy UI5 Generator. But I got some questions / remarks on Twitter to get this functionality integrated within the Easy UI5 Generator.
Is this an option to integrate this functionality in the Easy UI5 Generator?
Is this a direction you want to take with this project?

It will probably require quite some adaptions to the project, since the project structure of a library is quite different from an app (namespaced folder structure).
So before doing a deep-dive in the possibilities of integrating this functionality, I'd like to hear you opinion on this topic.

npm run build:mta gives an error

Easy-Ui5 version:1.3.1
yo version: 3.1.1
Cloud MTA Build Tool version 1.0.12
MultiApps Cloud Foundry CLI Plugin version: 2.3.1
GNU Make version: 3.81
OS/version: Windows 10

Steps to reproduce the problem:

  1. Create new app using yo easy-ui5. Use the following parameters:
  • myUI5App
  • com.myorg
  • Application Router @ Cloud Foundry
  • XML
  • MainView
  • Content delivery network (SAPUI5)
  • Yes
  1. Run npm run build:mta or npm run deploy
  2. I get the error:
[2020-03-30 15:33:55]  INFO Cloud MTA Build Tool version 1.0.11
[2020-03-30 15:33:55]  INFO generating the "Makefile_20200330153355.mta" file...
[2020-03-30 15:33:55]  INFO done
[2020-03-30 15:33:55]  INFO executing the "make -f Makefile_20200330153355.mta p=cf mtar= strict=true mode=" command...
''C:' is not recognized as an internal or external command,
operable program or batch file.
make: *** [pre_validate] Error 1
Error: could not build the MTA project: could not execute the "make -f Makefile_20200330153355.mta p=cf mtar= strict=true mode=" command: exit status 2

What is the expected result?
The app builds and deploys straight after the scaffolding.

What happens instead?
I get an error when building the mtar

Any other information?
Running mbt build works, and I can deploy the mtar to CF and it works.

Karma configuration for CI - Custom Launcher defined but not used

Easy-Ui5 version:
1.3.7

OS/version:
Windows -> but running generator on docker image (Ubuntu)

Browser/version (+device/version):
Latest Chrome

Steps to reproduce the problem:

  1. Generate an OpenUI5 app with the generator
  2. Run the app in a container
  3. Execute tests with "npm run test"

What is the expected result?
Successful execution of tests.

What happens instead?
Chrome cannot be started. Failed with error "ChromeHeadless stderr: Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted".

Any other information? (attach screenshot if possible)
The error appearing is a well known error when executing Chrome headless in a docker container. For that the "--no-sandbox" flag needs to be set. I guess you have considered that already in karam-ci.conf.js file (https://github.com/SAP/generator-easy-ui5/blob/master/generators/app/templates/karma-ci.conf.js) by defining a custom launcher ChromeHeadlessNoSandbox, but the "browsers" setting is set to "ChromeHeadless".
Should this set by default to "ChromeHeadlessNoSandbox" (as the solution here) or do you want to add some configurations to choose which launcher is executed (I don't think so). Here is the relevant code from the linked file:
browsers: ["ChromeHeadless"], customLaunchers: { ChromeHeadlessNoSandbox: { base: "ChromeHeadless", flags: [ "--no-sandbox", // required to run without privileges in docker "--user-data-dir=/tmp/chrome-test-profile", "--disable-web-security" ] } },
I guess that the browsers array should be set to ChromeHeadlessNoSandbox by default.

Adding a BaseController to the UI5 template

Easy-Ui5 version: 1.3.0

OS/version: any

Browser/version (+device/version): any

Steps to reproduce the problem:

  1. Create a new UI5 project

What is the expected result?
The generator creates a project with included BaseController. All generated view controller extend this BaseController.

What happens instead?
No BaseController exists in a new generated project

Any other information? (attach screenshot if possible)
What do you think about adding a BaseController to the template for creating a UI5 app, with basic functionality.
If you like, I would do the work on that.

Best Regards
Simon

GitLab Integration

Hello all,

Are there any plans in supporting GitLab? Just like the orgs on GitLab, we should be able to add the information to connect to GitLab.
At my project we would like to use the easy-ui5 generator for generating our Fiori App/Lib projects, but we need to be able to add our specific linting rules and CI/CD pipeline information.

This is off course possible with GitHub, but unfortunately my customer is using GitLab as git-repository and thus, octokit isn't an option. However, GitLab also has a very good rest api and I found following npm package which provides octokit-like functionality for GitLab.

Is this a use-case that would be interesting for the generator in the future? Or do you see problems if we'd integrate these options?

Thanks in advance for your feedback!

And thanks for this amazing utility!

Kind regards,

Robin

Error: EACCES: permission denied, mkdir '/path/to/project/ProjectName'

Mac Users Only

When global node_modules are being installed to /usr/local/lib, Easy-UI5 will fail to download and store the templates in the global NPM package and the following error occurs:

Error: EACCES: permission denied, mkdir '/path/to/project/ProjectName'
at Error (native)
at Object.fs.mkdirSync (fs.js:799:18)

To overcome the issue, the permissions for the Easy-UI5 NPM package in the global NPM modules need to be changed to rwx for everyone with the following command: chmod ugo+rwx /usr/local/lib/node_modules/generator-easy-ui5.

We should consider to provide a proper error message or use another location to install the templates to.

Limit of alpha numeric project names for OPA5

Dear colleagues,

when I run yo easy-ui5:opa5 for my project with name sap.ui.demo.cart.controller I get the error message:

Please use alpha numeric characters only for the project name.

This restriction is difficult for FIORI development, projects follow the name pattern
area.subarea.*

e.g. fin.ar.bankstatement.manage

Is it possible to soften this project name check ?

Thanks and Best Regards,
Stefan

Include mockserver in apps generated for Netweaver

Using the generator for a Netweaver application does not produce the localService folder nor the "start-local" task in package.json. It would be great to have the possibility to add a service metadata.xml and service data in a .json file to be able to run the app locally without backend server.

Among other cases, this would help create examples people can download and run without having to create the backend service in an SAP System.

npm start fails

Hello,

I've tried using the plugin for the first time and it's not working.

I've followed the basic steps.

and after npm start I got this:

dimouzunov@Dimos-MacBook-Pro com.myorg.TestApp % npm start

[email protected] start
ui5 serve --config=uimodule/ui5.yaml --open index.html

info normalizer:translators:ui5Framework Using SAPUI5 version: 1.96.0
#2.0#2022 07 01 14:59:34:358#+02:00#WARNING#/LoggingLibrary################PLAIN##Dynamic log level switching not available#
#2.0#2022 07 01 14:59:34:568#+02:00#INFO#/approuter#####l52gpy5k##########l52gpy5k#PLAIN##Application router version 10.15.4#
#2.0#2022 07 01 14:59:34:571#+02:00#INFO#/Configuration#####l52gpy5n##########l52gpy5n#PLAIN##No COOKIES environment variable#
#2.0#2022 07 01 14:59:34:574#+02:00#WARNING#/Configuration#####l52gpy5r##########l52gpy5r#PLAIN##No authentication will be used when accessing backends. Scopes defined in routes will be ignored.#
#2.0#2022 07 01 14:59:34:575#+02:00#INFO#/Configuration#####l52gpy5r##########l52gpy5r#PLAIN##xs-app.json: Application does not have directory for static resources!#
#2.0#2022 07 01 14:59:34:575#+02:00#INFO#/Configuration#####l52gpy5r##########l52gpy5r#PLAIN##Replacing $XSAPPNAME will not take place - 'xsappname' property not found in UAA configuration.#
info server:custommiddleware:livereload Livereload server started!
#2.0#2022 07 01 14:59:34:592#+02:00#INFO#/approuter#####l52gpy5k##########l52gpy5k#PLAIN##Application router is listening on port: 1091#

โš ๏ธ Process Failed With Error

Error Message:
getaddrinfo ENOTFOUND localhost

Instructions for usage in combination with CAP (after 'cds init')

From the working directory of my CAP app root I run yo easyui5.
After the wizard I end up with 'com.me.myui5app'.
Then I do mv com.me.myui5app app. As cds will serve what's in the app directory.
It works well and I can run the app after cds serves it with https://localhost:4004/webapp.

Is that the best practice? Or should I end up with index.html in the cds' app directory without webapp.

add template for custom tile

Easy-Ui5 version: 1.3.1

I like to contribute a template for generating custom tiles.

This blog on SCN described how to add custom tiles. In comparison to standard UI5 apps, the code structure is a little bit different and can be reduced a lot. For instance the router property in the manifest is not necessary.

What is the expected result?

  • A new template command which generates a custom tile, similar to the UI5 app template.

I like to ask if this is a feature which is worth to add and if it fits to the roadmap of this tool?

create new view

Easy-Ui5 version: 0.3.4

OS/version: Windows 10

Steps to reproduce the problem:

  1. yo easy-ui5:newview
  2. type in view name 'TileContainer'
  3. return to commit creating depending controller

What is the expected result?
It should create a new view and depending controller

What happens instead?
error appears: "TypeError: Cannot read property 'toLowerCase' of undefined"

Any other information? (attach screenshot if possible)
grafik

MTA deployment doesn't work due to zipped uimodule

Easy-Ui5 version:

$ npm -g ls generator-easy-ui5
/usr/lib
โ””โ”€โ”€ [email protected] 

OS/version:

$ uname -a
Linux X 5.4.85-1-MANJARO #1 SMP PREEMPT Mon Dec 21 21:38:53 UTC 2020 x86_64 GNU/Linux

Browser/version (+device/version):
Not applicable

Steps to reproduce the problem:

  1. Generate a new project
  2. Build an MTAR with npx mbt build
  3. Deploy to cloudfoundry using cf deploy mta_archives/MyApp_0.0.1.mtar
  4. Open the deployed app on https://XXX.hana.ondemand.com/

What is the expected result?

  • Opening the URL immediately displays whatever app i've build

What happens instead?

Any other information? (attach screenshot if possible)
Running npx mbt build in my project's root dir results in the following files in my project:

approuter
`-- webapp
    |-- resources
    |   |-- sap
    |   |   |-- ...
    |   |-- jquery.sap.act-dbg.js
    |   |-- jquery.sap.act.js
    |   |-- etc...
    `-- uimodule.zip

In uimodule/ui5.yaml there is a small section with a ui5-task-zipper

builder:
  customTasks:
    - name: ui5-task-zipper
      afterTask: uglify
      configuration:
        archiveName: uimodule

when I disable this part, I no longer get a zip in my approuter deployment and the apps works as I would expect

2 spec files are generated when enabling page objects

Easy-Ui5 version: v2.2.3

OS/version: Windows 10

Browser/version (+device/version): n/a

Steps to reproduce the problem:

  • yo easy-ui5:uiveri5
  • Seems like this project has not been generated with Easy-UI5. Please enter the name of your project: uiveri5
  • URL to the app under test: http://localhost:8080
  • Choose authentication: SAP Fiori
  • Name for the suite (describe block): masterdetail
  • Name for the spec (it block): should see the app
  • Choose additional reporters:
  • Do you want to add a page object? Yes
  • Page object name: Master
  • Add action with name (empty string to skip actions): iSelectBook
  • Add assertion with name (empty string to skip assertions): iShouldSeeBook

What is the expected result?
My expectation is that only one spec file is generated that refers to the page object.

What happens instead?
2 spec files are generated (one refers to the page object, the other not):

create uiveri5\masterdetail.spec.js
create uiveri5\.npmignore
create uiveri5\conf.js
create uiveri5\README.md
create uiveri5\package.json
create uiveri5\pages\master.js
create uiveri5\masterExample.spec.js

Any other information? (attach screenshot if possible)

Error: Unable to install this module

Hi,

npm install -g generator-easy-ui5 command result in an error.

$ npm install -g generator-easy-ui5
npm ERR! code ENOTFOUND
npm ERR! syscall getaddrinfo
npm ERR! errno ENOTFOUND
npm ERR! network request to https://api.github.com/generator-easy-ui5/generator-easy-ui5/generator-easy-ui5 failed, reason: getaddrinfo ENOTFOUND api.github.com
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly.  See: 'npm help config'

I have tried almost everything available to install this module but failed.

Attached here the list of commands I have tried and the last log file which may be useful for your troubleshooting.

command_prompt_cmds.txt
2021-04-09T19_26_47_372Z-debug.log

Thanks

Files in generated application shouldn't be executable

Easy-Ui5 version:
2.2.1

OS/version:
macOS 10.15.7

Browser/version (+device/version):
N/A

Steps to reproduce the problem:

  1. Use generator-easy-ui5 to scaffold a new UI5 application.
  2. Files in uimodule/webapp that are not executable are marked as executable.

What is the expected result?
Non-executable files should not have the executable bit set.

What happens instead?
As above

Any other information? (attach screenshot if possible)
The following files in the repo are executable and do not need to be:

./generators/newwebapp/templates/uimodule/webapp/index.html
./generators/newwebapp/templates/uimodule/webapp/css/style.css
./generators/newwebapp/templates/uimodule/webapp/Component.js
./generators/newwebapp/templates/uimodule/webapp/model/models.js
./generators/newwebapp/templates/uimodule/webapp/manifest.json
./generators/newwebapp/templates/uimodule/webapp/i18n/i18n.properties

Happy to send a pull request to fix this.

Instalation issue

OS/version: windows 10 (Node.js - 10.14.2, npm - 6.4.2)

Steps to reproduce the problem:

  1. run command npm i -g yo generator-easy-ui5
    trace

error

API rate limit hit during build of a dependent package

My CI builds started failing today because:

  • I added this as a devdependency
  • post install is hitting github which has a 60 request per hour rate limit on unauthenticated PI calls (generators/app/postinstall.js)
  const octokit = new Octokit({
    userAgent: "generator-easy-ui5",
  });

  const reqBranch = await octokit.repos.getBranch({
    owner: ghOrg,
    repo: repoName,
    branch,
  });

I fixed it removing it as a dependency, leaving this message for posterity

Change karma-ci.conf.js to allow running Karma-ci tests inside docker containers

Easy-Ui5 version: Latest

OS/version: Docker

Browser/version (+device/version): Chrome

Steps to reproduce the problem:

  1. Create an empty template (I used the one for Cloud Foundry HTML5 repository)
  2. Inside docker container run: npm run test

What is the expected result?
That the Karma tests succeed

What happens instead?
Karma / docker throws an error that the tests are not allowed to run without the --no-sandbox parameter

Any other information? (attach screenshot if possible)
This can be solved by adapting the file karma-ci.conf.js so it reflects (this change doesn't seem to impact running the tests locally in VS Code):

module.exports = function(config) {
	require("./karma.conf")(config);
	config.set({

		// test results reporter to use
		// possible values: 'dots', 'progress', 'coverage'
		// available reporters: https://npmjs.org/browse/keyword/karma-reporter
		reporters: ['progress'],

		// start these browsers
		// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
		browsers: ['ChromeHeadlessNoSandbox'],
                customLaunchers: {
                       ChromeHeadlessNoSandbox: {
                              base: 'ChromeHeadless',
                              flags: [
                                       '--no-sandbox', // required to run without privileges in docker
                                       '--user-data-dir=/tmp/chrome-test-profile',
                                       '--disable-web-security'
                             ]
                      }
                },

		// Continuous Integration mode
		// if true, Karma captures browsers, runs the tests and exits
		singleRun: true

	});
};

easy-ui5:uiveri5: Duplicate comma after baseUrl

Easy-Ui5 version: v2.2.3

OS/version: Windows 10

Browser/version (+device/version): n/a

Steps to reproduce the problem:

  1. Run yo easy-ui5:uiveri5
  2. Choose authentication: SAP Fiori

What is the expected result?
A valid conf.js file is generated

What happens instead?
After the baseUrl, there are two "," instead of one ",":
baseUrl: "http://localhost:8080",,

Any other information? (attach screenshot if possible)

exports.config = {
  profile: "integration",
  baseUrl: "http://localhost:8080",,
  auth: {
    // provide credentials as params when running the test:
    // uiveri5 --params.user=<user> --params.pass=<pass>
    "fiori-form": {
      user: "${params.user}",
      pass: "${params.pass}"
    }
  }
};

generated view/controller names should not be prefixed with viewtype

Easy-Ui5 version:
any

OS/version:
any

Browser/version (+device/version):
any

Steps to reproduce the problem:

  • generate a new project
    or
  • add a new view

What is the expected result?
File names of views and controllers should follow the naming rules of other ui5 apps. For example https://github.com/SAP/openui5-sample-app/tree/master/webapp/view is created as App.view.xml

What happens instead?

The generated files are prefixed with the viewtype: XMLApp.view.xml

Projects generated are getting wrong namespace

Easy-Ui5 version: 3.0.0

OS/version: Windows 10

Browser/version (+device/version): Latest Edge/Chrome

Steps to reproduce the problem:

  1. Start generator via yo easy-ui5
  2. What do you want to do? Create a new OpenUI5/SAPUI5 project
  3. How do you want to name this project? myUI5App
  4. Which namespace do you want to use? com.myorg
  5. On which platform would you like to host the application? SAP NetWeaver
  6. Which view type do you want to use? XML
  7. Where should your UI5 libs be served from? Content delivery network (SAPUI5)
  8. Would you like to create a new directory for the project? Yes

What is the expected result?

Since i did not enter any information and went with the default values for all questions i expected that i could start the project via npm start and get a empty UI5 application starting in my default browser.

What happens instead?

Browser dev tools console was complaining that some models.js file could not be loaded so i looked into the generated source and found the bug. The generator puts wrong values for all namespaces in. If i replace this with the default namespace com.myorg.myUI5App the app starts as expected and i get no error (despite the normal missing i18n and component-preload stuff).

In detail these are the files where i needed to replace the wrong namespace:

  • index.html -> ui5-project:newwebapp.myUI5App
  • manifest.json -> ui5-project:newwebapp
  • Component.js -> ui5-project:newwebapp
  • BaseController.js -> ui5-project:newwebapp
  • MainView.xml -> ui5-project:newview
  • MainView.controller.js -> ui5-project:newview

Any other information? (attach screenshot if possible)

project type "Application Router @ Cloud Foundry" isn't deployed properly

Easy-Ui5 version: 2.4.2

OS/version: macOS 11.1

Browser/version (+device/version): -doesn't apply-

Steps to reproduce the problem:

  1. yo easy-ui5
  ? How do you want to name this project? myUI5App
  ? Which namespace do you want to use? com.myorg
  ? On which platform would you like to host the application? Application Router @ Cloud Foundry
  ? Which view type do you want to use? XML
  ? How do you want to name your main view? MainView
  ? Where should your UI5 libs be served from? Content delivery network (OpenUI5)
  ? Would you like to create a new directory for the project? (Y/n) No
  1. npm run deploy
    ...all fine, local build executes, upload + deployment works...
  2. opening https://$appid.cfapps.eu10.hana.ondemand.com/
    redirects to
    https://$appid.cfapps.eu10.hana.ondemand.com/uimodule/index.html
    and fails with 404 Not found

What is the expected result?
see the bare bones ui5 app running on cf

What happens instead?
http 404 - not found

Any other information? (attach screenshot if possible)
reason is that in /uimodule/ui5.yaml, a custom builder task is defined to zip up the result of ui5 build.
the uimodule.zip then ends up as /approuter/uimodule/webapp/uimodule.zip and upon deployment to cf doesn't get extracted automatically, but stays as is (as a zip).

possible remedies:

  • remove custom zip build task from ui5.yaml for project type "Application Router @ Cloud Foundry"
    or
  • add an unzip operation to /mta.yaml for deployment of project type "Application Router @ Cloud Foundry"

Application Router @ Cloud Foundry : new project is ending with error

Easy-Ui5 version:
6.14.8

OS/version:
Windows

Browser/version (+device/version):
Chrome , BAS

Steps to reproduce the problem:

  1. user: projects $ yo easy-ui5
  2. How do you want to name this project? test
  3. Which namespace do you want to use? com.sample
  4. On which platform would you like to host the application? Application Router @ Cloud Foundry
  5. Which view type do you want to use? XML
  6. How do you want to name your main view? home
  7. Where should your UI5 libs be served from? Content delivery network (SAPUI5)
  8. Would you like to create a new directory for the project? Yes
  9. npm start

What is the expected result?
start the url in localhost
What happens instead?
image

Any other information? (attach screenshot if possible)
Targetting as a cloud foundry application

Not able to deploy the ui5 project to SAP ABAP server

We are develop the ui5 project using yomen generator (easy ui5) and trying to deploy the app using npm run deploy but it did not deploy the app and gives the error "Error: Operation Existing Transport Determination for BSP Container: Expected status code 200, actual status code 403".

After investigation we came to know that issue is at the line no. 80:
fnCallback(new Error(Operation Existing Transport Determination: Expected status code ${fsutil.HTTPSTAT.ok}, actual status code ${oResponse.statusCode}));
it is not passing the credentials and coming back with mentioned error.

Please help us to resolve the issue.

Regards
Saket A

I'm sorry to hear that easy-ui5 generated broken files. Please report this issue directly in the repository for the plugin that you used. You can find all plugins in the UI5 Community organization.

Here are a few direct links to some plugins:

SCP Portal Integration

Hi,

it would be very helpful to also add a portal site to the generator for the generated UI5 app. This would allow to spin up a FLP with the generated app as tile in SCP easily.

Most of the topics are already taken care of in the Cloud Foundry HTML5 Application Repository, only some smaller parts would need to be added:

  • Portal-Content + Portal as Ressources and their bindings
  • Portal-Content Module Folder for the Site with package.json and site
  • changes in approuter/xs-app.json, e.g. /cp.portal as welcomeFile

References

Thanks, Andre

Issue when creating fiori elements using yeoman

I'm unable to create a Fiori elements project with yeoman generator. Please find the steps and error below

This happens with a SAP CAP project which is already created and deployed with few UI projects in it

app balaji$ yo
? 'Allo i340782! What would you like to do? @sap/fiori

Make sure you are in the directory you want to scaffold into.
This generator can also be run with: yo @sap/fiori

? Application Type SAP Fiori elements
? Which floorplan do you want to use?
List Report Object Page
? Data source Use a Local CAP Project
? CAP project folder path /Users/balaji/Projects/kpi-dashboard-ui
(node:25581) Warning: Accessing non-existent property 'INVALID_ALT_NUMBER' of module exports inside circular dependency
(Use node --trace-warnings ... to show where the warning was created)
(node:25581) Warning: Accessing non-existent property 'INVALID_ALT_NUMBER' of module exports inside circular dependency
? OData service kpiService
? Main entity EnablementSessions
? Module name enablementsessions
? Application title Manage Enablement Sessions
? Application namespace es
? Description Manage Enablement Sessions
? Add deployment configuration to MTA project (/Users/balaji/Projects/kpi
-dashboard-ui/mta.yaml) Yes
? Add FLP configuration Yes
? Configure advanced options No

 _-----_     โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
|       |    โ”‚      Bye from us!     โ”‚
|--(o)--|    โ”‚       Chat soon.      โ”‚

---------ยด โ”‚ Yeoman team โ”‚ ( _ยดU_ ) โ”‚ http://yeoman.io โ”‚
/A\ /โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
| ~ |
'..'_
ยด |ยฐ ยด Y

**events.js:292
throw er; // Unhandled 'error' event
^

Error: spawn /usr/local/lib/node_modules/@sap/generator-fiori/generators/deployment-generator/deploy/bin/mta ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:269:19)
at onErrorNT (internal/child_process.js:465:16)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
Emitted 'error' event on Generator instance at:
at Immediate. (/usr/local/lib/node_modules/@sap/generator-fiori/node_modules/yeoman-generator/lib/index.js:791:20)
at processImmediate (internal/timers.js:461:21) {
errno: -2,
code: 'ENOENT',
syscall: 'spawn /usr/local/lib/node_modules/@sap/generator-fiori/generators/deployment-generator/deploy/bin/mta',
path: '/usr/local/lib/node_modules/@sap/generator-fiori/generators/deployment-generator/deploy/bin/mta',
spawnargs: [
'get',
'resources',
'-p',
'/Users/balaji/Projects/kpi-dashboard-ui/mta.yaml'
]
}**

Kindly rectify this issue

[UIVeri5]: Selection of default reporter JUNIT as additional reporter not needed

Easy-Ui5 version: [email protected]

OS/version: MacOS BigSur

Browser/version (+device/version): Google Chrome

Steps to reproduce the problem:

  1. Run the generator for UIVeri5

What is the expected result?
As JUnit is already one of the default reporters I would not expect to add it in the uiveri5 generator as additional reporter.
Instead I would expect an option: none

What happens instead?
You are asked to add JUNIT or SauceLabs.

Any other information? (attach screenshot if possible)

[ERR_REQUIRE_ESM]: Must use import to load ES Module

Hello,

The npm module valid-filename raises issues while generating the easy-ui5 app.
The error described as below:
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: C:\Users\Somnath\AppData\Roaming\npm\node_modules\valid-filename\index.js
require() of ES modules is not supported.

Is this a known issue?
My current node version > 14.

Thanks.

No such file or directory "ui5-local.yaml"

Easy-Ui5 version:

Run yo easy-ui5 --plugins to print all relevant version strings

Node.js: v18.2.0
yeoman-environment: 3.9.1
generator-easy-ui5: 3.4.0
home: /opt/homebrew/lib/node_modules/generator-easy-ui5
pluginsHome: /opt/homebrew/lib/node_modules/generator-easy-ui5/plugin-generators

Available generators:
  - generator-ui5-project: 0.1.1

OS/version:

MacOS 12.4

Browser/version (+device/version):

MacBook Pro M1 13"

Steps to reproduce the problem:

  1. Run "yo easy-ui5 project"
  2. Select "Create a new OpenUI5/SAPUI5 project"
  3. Select default name and namespace for the app.
  4. Select "static webserver" for the platform.
  5. Select "XML" as view type.
  6. Select CDN for OpenUI5
  7. Select "Yes" for creating new directory for the app.
  8. Select "Yes" for adding Javascript code assist libraries.

What is the expected result?

The project will be created.

What happens instead?

used @sap-ux/fiori-freestyle-writer to generate freestyle app skeleton :)
  โš  ๏ธ patched @sap-ux's index.html with Content delivery network (OpenUI5)
  โš  ๏ธ patched @sap-ux's flpSandbox.html to boostrap only SAPUI5 (sap.ushell!)
  โš  ๏ธ patched @sap-ux's MainViewController.js to use ./BaseController
node:events:505
      throw er; // Unhandled 'error' event
      ^

Error: ENOENT: no such file or directory, scandir '/Users/kennethsumang/Documents/www/sapui5/com.myorg.myUI5App/uimodule/ui5-local.yaml'
    at Object.readdirSync (node:fs:1420:3)
    at exports.readdir (/opt/homebrew/lib/node_modules/generator-easy-ui5/plugin-generators/generator-ui5-project/node_modules/@mrmlnc/readdir-enhanced/lib/sync/fs.js:18:20)
    at Object.safeCall [as safe] (/opt/homebrew/lib/node_modules/generator-easy-ui5/plugin-generators/generator-ui5-project/node_modules/@mrmlnc/readdir-enhanced/lib/call.js:24:8)
    at DirectoryReader.readNextDirectory (/opt/homebrew/lib/node_modules/generator-easy-ui5/plugin-generators/generator-ui5-project/node_modules/@mrmlnc/readdir-enhanced/lib/directory-reader.js:78:10)
    at DirectoryReader.stream._read (/opt/homebrew/lib/node_modules/generator-easy-ui5/plugin-generators/generator-ui5-project/node_modules/@mrmlnc/readdir-enhanced/lib/directory-reader.js:57:18)
    at Readable.read (node:internal/streams/readable:496:12)
    at readdirSync (/opt/homebrew/lib/node_modules/generator-easy-ui5/plugin-generators/generator-ui5-project/node_modules/@mrmlnc/readdir-enhanced/lib/sync/index.js:27:21)
    at Function.readdirSyncStat (/opt/homebrew/lib/node_modules/generator-easy-ui5/plugin-generators/generator-ui5-project/node_modules/@mrmlnc/readdir-enhanced/lib/index.js:34:10)
    at ReaderSync.dynamicApi (/opt/homebrew/lib/node_modules/generator-easy-ui5/plugin-generators/generator-ui5-project/node_modules/fast-glob/out/providers/reader-sync.js:64:24)
    at ReaderSync.api (/opt/homebrew/lib/node_modules/generator-easy-ui5/plugin-generators/generator-ui5-project/node_modules/fast-glob/out/providers/reader-sync.js:56:25)
Emitted 'error' event on Readable instance at:
    at emitErrorNT (node:internal/streams/destroy:151:8)
    at emitErrorCloseNT (node:internal/streams/destroy:116:3)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -2,
  syscall: 'scandir',
  code: 'ENOENT',
  path: '/Users/kennethsumang/Documents/www/sapui5/com.myorg.myUI5App/uimodule/ui5-local.yaml'
}

Node.js v18.2.0

Any other information? (attach screenshot if possible)

Add SAP NetWeaver as a target platform

Easy-Ui5 version: 1.3.1

OS/version: any

Browser/version (+device/version): any

Steps to reproduce the problem:

  1. Generating a new app and choosing the target platform

What is the expected result?
Add SAP NetWeaver as a target platform

What happens instead?
/

Any other information? (attach screenshot if possible)
Are there any plans on adding SAP Netweaver as a target platform? Could we use nwabap-ui5uploader to add the possibility to deploy an application to a Netweaver system?
You guys have any input on this & could I work on this?

easy-ui5:uiveri5: Typo in page object action

Easy-Ui5 version: v2.2.3

OS/version: Windows 10

Browser/version (+device/version): n/a

Steps to reproduce the problem:

  • Run yo easy-ui5:uiveri5
  • Do you want to add a page object? Yes
  • Page object name: home
  • Add action with name (empty string to skip actions): iSelectBook

What is the expected result?
A valid action is generated.

What happens instead?
The action contains a small typo ("c" of controlType is missing):
ontrolType: "sap.m.Button"

Any other information? (attach screenshot if possible)

actions: {
      // add action functions here
      iSelectBook: function () {
        element(by.control({
          ontrolType: "sap.m.Button"
        })).click();
      }
    },

Remove the extra dir uimodule when generate app

Easy-Ui5 version:
6.9.0
OS/version:
Windows 10
Browser/version (+device/version):
Chrome
Steps to reproduce the problem:

  1. type: yo easy-ui5
  2. follow all steps to generate

What is the expected result?
The folder webapp should be right below the root folder (same level as node_modules)

What happens instead?
The folder webapp is contained in uimodule folder

SAPUI5 Integration/Configuration (Question)

Easy-Ui5 version:
0.2.0

OS/version:
MacOS

Browser/version (+device/version):

Steps to reproduce the problem:

  1. Use the scaffold to generate a project
  2. Attempt to use a SAPUI5 specific component such as the FilterBar

What is the expected result?
That we can easily configure the scaffold to use a local "/resources" folder instead of the default OpenUI5.

What happens instead?
OpenUI5 is used.

Any other information? (attach screenshot if possible)
Are there any plans to be able to configure the scaffold to be able to integrate or use the SAPUI5 runtime? See https://tools.hana.ondemand.com/#sapui5

SAPUI5 doesn't seem to have its packages available at https://npm.sap.com/ which would have made it easier to integrate, but I assume that's due to some sort of licensing restriction(s)?

Enhancement for gitignore

Hi,
small enhancement request.

Maybe you can add mta-* to .gitignore

to make sure after downloaded mta log, they are not commited.

Logs are downloaded via
cf dmol -i xxx-yyy-zzz

and then stored/exploded in local dir
mta-xxx-yyy-zzz

Regards
Holger

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.