Giter VIP home page Giter VIP logo

ui5-tooling's Introduction

UI5 logo

UI5 Tooling

An open and modular toolchain to develop state-of-the-art applications based on the UI5 framework.

REUSE status OpenUI5 Community Slack (#tooling channel) Contributor Covenant

UI5 Tooling v4 is in development and next version 🚧

UI5 Tooling v3 is the latest and stable version πŸŽ‰

UI5 Tooling v2 has been deprecated 🚫

Please migrate your projects to UI5 Tooling v3!

Resources

Modules

UI5 Tooling consists of multiple modules. Each one is managed in a separate repository:

  • ui5-cli: UI5 Command Line Interface, utilizing all of the following modules
  • ui5-project: Modules for building a UI5 project's dependency tree, including configuration
  • ui5-server: Modules for running a UI5 development server
  • ui5-builder: Modules for building UI5 projects
  • ui5-fs: UI5 specific file system abstraction
  • ui5-logger: Internal logging module

Usage Overview (arrows indicate dependencies) Module Overview

Contributing

Please check our Contribution Guidelines.

Support

Please follow our Contribution Guidelines on how to report an issue. Or chat with us in the #tooling channel of the OpenUI5 Community Slack. For public Q&A, use the ui5-tooling tag on Stack Overflow.

ui5-tooling's People

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  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

ui5-tooling's Issues

Scaffolding

As of now, two critical tools from the WebIDE for basic development are missing from offline/local development using the ui5 tools through cli. Please correct me if I'm wrong...

  • Deploying to ABAP #17
  • Scaffolding for new projects

Question: can you please provide us with a code example?

I apologize for ignoring your issue template.

I don't know how to install and use @openui5 modules. I tried this:

npm install @openui5/sap.ui.core
echo "require('@openui5/sap.ui.core')" | node

and I got this:

module.js:549
    throw err;
    ^

Error: Cannot find module '@openui5/sap.ui.core'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at [stdin]:1:1
    at ContextifyScript.Script.runInThisContext (vm.js:50:33)
    at Object.runInThisContext (vm.js:139:38)
    at Object.<anonymous> ([stdin]-wrapper:6:22)
    at Module._compile (module.js:652:30)
    at evalScript (bootstrap_node.js:466:27)

πŸ› Error: Cannot find module 'yargs'

Expected Behavior

Should display the help

Current Behavior

Command fails

Steps to reproduce the issue

  1. npm install --global @ui5/cli
  2. ui5 --help

Context

  • OS/Platform: 64bit Mac OS X 10.13.5 17F77
  • Shell: zsh 5.5.1
  • Node.js Version: v9.6.1
  • npm Version: 5.6.0

Affected components

Stack trace/log output

module.js:559
    throw err;
    ^

Error: Cannot find module 'yargs'
    at Function.Module._resolveFilename (module.js:557:15)
    at Function.Module._load (module.js:484:25)
    at Module.require (module.js:606:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/nlsltz/.nvm/versions/node/v9.6.1/lib/node_modules/@ui5/cli/bin/ui5.js:2:13)
    at Module._compile (module.js:662:30)
    at Object.Module._extensions..js (module.js:673:10)
    at Module.load (module.js:575:32)
    at tryModuleLoad (module.js:515:12)
    at Function.Module._load (module.js:507:3)

Check whether ISO-8859-1 should still be enforced for .properties files

Expected Behavior

See SAP-archive/connect-openui5#20

While this might be incompatible to current applications and libraries, we should look into it. A project setting might be already sufficient.

Current Behavior

.properties files are always served with charset ISO-8859-1 (relevant code).

Steps to reproduce the issue

  1. Serve the openui5-sample-app
  2. In the network trace, check the Content-Type header of the requested i18n file:
    screen shot 2018-05-23 at 18 44 55

Context

  • OS/Platform: macOS 10.13.4
  • Node.js Version: v8.11.1
  • npm Version: 5.8.0
  • Browser (if relevant): Chrome 67
  • Other information: -

Affected components

Stack trace/log output

Bundles contain minified and dbg files

Expected Behavior

A bundle should only contain the minified version of a file.

Current Behavior

Bundles contain both, the minfied and the non-minified filename-dbg.js files.

Steps to reproduce the issue

  1. Execute ui5-build in the openui5-sample-app
  2. Observe the generated file Component-preload.js which contains both, sap/ui/demo/todo/Component-dbg.js and sap/ui/demo/todo/Component.js

Context

  • OS/Platform: macOS 10.13.4
  • Node.js Version: v8.11.1
  • npm Version: 5.8.0
  • Browser (if relevant): -
  • Other information:
    screen shot 2018-05-23 at 17 05 50

Affected components

Stack trace/log output

Serve application projects listed as project dependencies in /resources

Expected Behavior

In some use cases, it is desired to use multiple ui5 components in a shared environment (for instance loading an application component appB file during runtime once a tile was clicked in appA). This is currently possible with HTML5 / ui5 applications that are deployed in a SCP account, in conjunction with a configuration in neon-app.json.

Current Behavior

As of now, ui5 application projects won’t be served in /resources when running ui5 serve in a ui5 root project, even when they contain an ui5.yaml descriptor file and are listed as dependencies.

Steps to reproduce the issue

Suppose the following structure of two ui5 application projects:

my-root-app/
    \_ node_modules/
    \_ webapp/
    \_ ui5.yaml
    \_ package.json

openui5-sample-app
    \_ node_modules/
    \_ webapp/
    \_ ui5.yaml
    \_ package.json

A global link of the openui5-sample app is created:

cd openui5-sample-app
npm link 

The sample app is added as a dependency

cd my-root-app
npm link openui5-sample-app
npm install 

The ui5-sample-app is made known in the root project:

	<script id="sap-ui-bootstrap" type="text/javascript"
		src="resources/sap-ui-core.js"
		data-sap-ui-theme="sap_belize"
		data-sap-ui-libs="sap.m"
		data-sap-ui-bindingSyntax="complex"
		data-sap-ui-compatVersion="edge"
		data-sap-ui-preload="async"
		data-sap-ui-resourceroots='{
			"my.app": "./",
			"sap.ui.demo.todo": "/resources/sap/ui/demo/todo"
		}'>
	</script>

However, when running ui5 serve in my-root-app, requests that point to the openui5-sample-app will fail.

library-preload bundle is missing resources since 1.58

Expected Behavior

library-preload bundles should contain all relevant resources of a library

Current Behavior

When generating the preload bundle for sap.ui.core at version 1.58.2, various resources are missing from that bundle. At runtime those resources are loaded synchronously:
screen shot 2018-09-24 at 10 19 51

Steps to reproduce the issue

  1. Clone the openui5-sample
  2. Checkout branch ui5-tooling
  3. Install version 1.58.2 of the dependencies:
npm install @openui5/[email protected] @openui5/[email protected] @openui5/[email protected]
  1. Execute build:
    ui5 build -a
  2. Start an http server for the dist directory:
    serve dist
  3. Start the app in a browser and observe the additionally requested resources as seen in the screenshot above

Context

  • OS/Platform: macOS 10.13.6
  • Node.js Version: v10.5.0
  • npm Version: 6.4.1
  • Browser (if relevant): Chrome 69
  • Other information: ui5 tooling version 0.2.1

Affected components

Add case sensitive check (independent of file system)

Original issue by @matz3

A file called test.js on the file system can be loaded from the server with different cases like Test.js or TEsT.js when using a case insensitive files system (Windows, Mac).

This can cause problems as local development works fine but when deploying to a linux based server the file can't be found anymore.

Background

Tomcat had a caseSensitive configuration with default true to do a case sensitive check also for case insensitive file systems. This config has been removed with Tomcat 7 to always enable this behavior.
See: http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

Affected components

Content of splitted modules differ each build

Expected Behavior

When splitting modules in different parts by setting the numberOfParts property in the ui5.yaml, it is expected that the resulting modules are always the same.

Current Behavior

The resulting parts differ each time when building the project depending on the file sizes.

Steps to reproduce the issue

  1. clone the project ui5-builder
  2. adapt libraryHTree in test/lib/builder/builder.js to
const libraryHTree = {
	"id": "library.h",
	"version": "1.0.0",
	"path": libraryHPath,
	"dependencies": [],
	"_level": 0,
	"specVersion": "0.1",
	"type": "library",
	"metadata": {
		"name": "library.h",
		"copyright": "Some fancy copyright"
	},
	"resources": {
		"configuration": {
			"paths": {
				"src": "main/src",
				"test": "main/test"
			}
		},
		"pathMappings": {
			"/resources/": "main/src",
			"/test-resources/": "main/test"
		}
	},
	"builder": {
		"bundles": [{
			"bundleDefinition": {
				"name": "library/h/customBundle.js",
				"defaultFileTypes": [".js"],
				"sections": [{
					"mode": "preload",
					"filters": [
						"library/h/some.js",
						"library/h/library.js",
						"library/h/file.js",
						"!library/h/not.js"
					],
					"resolve": false,
					"renderer": false
				}]
			},
			"bundleOptions": {
				"optimize": true,
				"usePredefinedCalls": true,
                                 "numberOfParts": 4
			}
		}],
		"componentPreload": [
			"components",
			"components/subcomponent1",
			"components/subcomponent2",
			"components/subcomponent3",
		]
	}
};
  1. run npm run unit-inspect test/lib/builder/builder.js

Context

  • OS/Platform: MacOS
  • Node.js Version: v.8.10.0
  • npm Version: 5.6.0

Affected components

UI5 cli to run tests in headless mode in console to support continuous integration

Expected Behavior

UI5 tooling allows running tests in the browser via command line. I expect it to run in headless mode also to support continuous integration

Current Behavior

Currently, it runs tests in a browser given via command line

Steps to reproduce the issue

No steps required for this

Context

Support for continuous integration

Affected components

Error: Resource Component-preload.js has no content

Expected Behavior

After running ui5 init the project should be able to build the project

Current Behavior

After running ui5 init the build fails because there is no metadata.namespace property in the ui5.yaml file.

Steps to reproduce the issue

  1. clone an existing project
  2. run ui5 init
  3. run ui5 build
  4. get error Error: Resource Component-preload.js has no content

Context

  • OS/Platform: Win10
  • Node.js Version: 8.9.4
  • npm Version: 5.8.0

Affected components

Resolution

Perhaps the namespace could be read from the sap.app.id in the manifest.json file if it exists. If it does not exist then output warning the user or even a prompt for input might be acceptable? Also in the build perhaps a check could be performed if the namespace field exists and throws a meaningful error in its absence.

Never returns status 404 Not Found which causes error "Uncaught SyntaxError: Unexpected token <"

Expected Behavior

It should return status 404 Not Found for files not found.

Current Behavior

If a file is not found, it always returns status 200 OK and an HTML file as response.

Steps to reproduce the issue

  1. Get the project: https://github.com/mauriciolauffer/ui5-tooling-test
  2. Run $ ui5 serve -o index.html
  3. If you open http://localhost:8080/resources/sap/m/library-preload.js it will return an HTML page instead of a 404 Not Found error.

Context

  • OS/Platform: Windows 10
  • Node.js Version: 8.11.3
  • npm Version: 6.2.0
  • Browser (if relevant): IE/Edge/Chrome/Firefox

Affected components

Stack trace/log output: js erros in Chrome

library-preload.js:1 Uncaught SyntaxError: Unexpected token <

Log.js?eval:414 2018-07-18 10:28:02.897199 failed to load 'sap/ui/layout/library-preload.js' (Unexpected token <), falling back to library-preload.json -  
log @ Log.js?eval:414
Log.error @ Log.js?eval:204
Logger.error @ Log.js?eval:475
(anonymous) @ Core.js?eval:1458
Promise.then (async)
preloadLibraryAsync @ Core.js?eval:1450
Core.loadLibraries @ Core.js?eval:1811
(anonymous) @ Interface.js?eval:44
preloadDependencies @ Component.js?eval:2483
(anonymous) @ Component.js?eval:2749
Promise.then (async)
(anonymous) @ Component.js?eval:2742
Promise.then (async)
loadComponent @ Component.js?eval:2739
componentFactory @ Component.js?eval:2076
Component.create @ Component.js?eval:1927
(anonymous) @ index.html:29
(anonymous) @ ui5loader.js:1690
setTimeout (async)
(anonymous) @ ui5loader.js:1689
requireAll @ ui5loader.js:1492
fnRequire @ ui5loader.js:1683
(anonymous) @ index.html:25
(anonymous) @ Core.js?eval:1215
Core._executeInitListeners @ Core.js?eval:1214
Core.init @ Core.js?eval:1077
(anonymous) @ Core.js?eval:347
finish @ SyncPoint.js?eval:59
SyncPoint.finishTask @ SyncPoint.js?eval:53
(anonymous) @ Core.js?eval:362
(anonymous) @ Core.js?eval:767
Promise.then (async)
Core._boot @ Core.js?eval:766
(anonymous) @ Core.js?eval:361
finish @ SyncPoint.js?eval:59
SyncPoint.finishTask @ SyncPoint.js?eval:53
(anonymous) @ Core.js?eval:436
Promise.then (async)
constructor @ Core.js?eval:435
(anonymous) @ Core.js?eval:3898
(anonymous) @ ui5loader.js:1605
requireAll @ ui5loader.js:1492
defineModule @ ui5loader.js:1585
ui5Define @ ui5loader.js:1568
(anonymous) @ Core.js?eval:8
execModule @ ui5loader.js:1399
requireModule @ ui5loader.js:1288
requireSync @ ui5loader.js:1812
(anonymous) @ index.html:18

Log.js?eval:414 2018-07-18 10:28:02.918800 failed to load '/resources/sap/ui/layout/library-preload.json': undefined -  
log @ Log.js?eval:414
Log.error @ Log.js?eval:204
Logger.error @ Log.js?eval:475
(anonymous) @ Core.js?eval:1545
Promise.then (async)
loadJSONAsync @ Core.js?eval:1529
(anonymous) @ Core.js?eval:1459
Promise.then (async)
preloadLibraryAsync @ Core.js?eval:1450
Core.loadLibraries @ Core.js?eval:1811
(anonymous) @ Interface.js?eval:44
preloadDependencies @ Component.js?eval:2483
(anonymous) @ Component.js?eval:2749
Promise.then (async)
(anonymous) @ Component.js?eval:2742
Promise.then (async)
loadComponent @ Component.js?eval:2739
componentFactory @ Component.js?eval:2076
Component.create @ Component.js?eval:1927
(anonymous) @ index.html:29
(anonymous) @ ui5loader.js:1690
setTimeout (async)
(anonymous) @ ui5loader.js:1689
requireAll @ ui5loader.js:1492
fnRequire @ ui5loader.js:1683
(anonymous) @ index.html:25
(anonymous) @ Core.js?eval:1215
Core._executeInitListeners @ Core.js?eval:1214
Core.init @ Core.js?eval:1077
(anonymous) @ Core.js?eval:347
finish @ SyncPoint.js?eval:59
SyncPoint.finishTask @ SyncPoint.js?eval:53
(anonymous) @ Core.js?eval:362
(anonymous) @ Core.js?eval:767
Promise.then (async)
Core._boot @ Core.js?eval:766
(anonymous) @ Core.js?eval:361
finish @ SyncPoint.js?eval:59
SyncPoint.finishTask @ SyncPoint.js?eval:53
(anonymous) @ Core.js?eval:436
Promise.then (async)
constructor @ Core.js?eval:435
(anonymous) @ Core.js?eval:3898
(anonymous) @ ui5loader.js:1605
requireAll @ ui5loader.js:1492
defineModule @ ui5loader.js:1585
ui5Define @ ui5loader.js:1568
(anonymous) @ Core.js?eval:8
execModule @ ui5loader.js:1399
requireModule @ ui5loader.js:1288
requireSync @ ui5loader.js:1812
(anonymous) @ index.html:18

library.js?eval:1 Uncaught (in promise) SyntaxError: Unexpected token <
    at eval (<anonymous>)
    at execModule (ui5loader.js:1399)
    at requireModule (ui5loader.js:1288)
    at requireAll (ui5loader.js:1474)
    at Object.fnRequire [as require] (ui5loader.js:1683)
    at eval (Core.js?eval:1797)
    at new Promise (<anonymous>)
    at requireLibsAsync (Core.js?eval:1796)

Stack trace/log output: $ ui5 serve --verbose

:\zdev\ui5-tooling-test>ui5 init
Wrote ui5.yaml to C:\zdev\ui5-tooling-test\ui5.yaml:

specVersion: '0.1'
metadata:
  name: ui5-tooling-test

C:\zdev\ui5-tooling-test>ui5 serve --verbose
verb cli:middlewares:base using node version v8.11.3
verb normalizer:normalizer Building dependency tree...
verb normalizer:translators:npm Analyzing ui5-tooling-test (C:\zdev\ui5-tooling-test) (dependency of nothing - root project)
verb normalizer:translators:npm Analyzing @openui5/sap.m (C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.m) (dependency of ui5-tooling-test)
verb normalizer:translators:npm Analyzing @openui5/sap.ui.core (C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.core) (dependency of ui5-tooling-test)
verb normalizer:translators:npm Analyzing @openui5/themelib_sap_belize (C:\zdev\ui5-tooling-test\node_modules\@openui5\themelib_sap_belize) (dependency of ui5-tooling-test)
verb normalizer:translators:npm Analyzing @openui5/sap.ui.unified (C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.unified) (dependency of @openui5/sap.m)
verb normalizer:translators:npm [PERF] Consider defining UI5-dependencies in the package.json files of the relevant modules from the following list to improve npm translator execution time: ui5-tooling-test, @o
penui5/sap.m, @openui5/sap.ui.core, @openui5/themelib_sap_belize, @openui5/sap.ui.unified
verb normalizer:translators:npm Built tree:
verb normalizer:translators:npm { id: 'ui5-tooling-test',
verb normalizer:translators:npm   version: '0.0.1',
verb normalizer:translators:npm   path: 'C:\\zdev\\ui5-tooling-test',
verb normalizer:translators:npm   dependencies:
erb normalizer:translators:npm    [ { id: '@openui5/sap.m',
verb normalizer:translators:npm        version: '1.56.4',
verb normalizer:translators:npm        path: 'C:\\zdev\\ui5-tooling-test\\node_modules\\@openui5\\sap.m',
verb normalizer:translators:npm        dependencies: [Array] },
verb normalizer:translators:npm      { id: '@openui5/sap.ui.core',
verb normalizer:translators:npm        version: '1.56.4',
verb normalizer:translators:npm        path: 'C:\\zdev\\ui5-tooling-test\\node_modules\\@openui5\\sap.ui.core',
verb normalizer:translators:npm        dependencies: [] },
verb normalizer:translators:npm      { id: '@openui5/themelib_sap_belize',
verb normalizer:translators:npm        version: '1.56.4',
verb normalizer:translators:npm        path: 'C:\\zdev\\ui5-tooling-test\\node_modules\\@openui5\\themelib_sap_belize',
verb normalizer:translators:npm        dependencies: [] } ] }
verb normalizer:projectPreprocessor Dependency of project @openui5/sap.m, "@openui5/sap.ui.core": Distance to root of 2. Will be replaced by project with same ID and distance to root of 2.
verb normalizer:projectPreprocessor Dependency of project @openui5/themelib_sap_belize, "@openui5/sap.m": Distance to root of 2. Will be replaced by project with same ID and distance to root of 2.
verb normalizer:projectPreprocessor Dependency of project @openui5/themelib_sap_belize, "@openui5/sap.ui.core": Distance to root of 2. Will be replaced by project with same ID and distance to root of 2.
verb normalizer:projectPreprocessor Dependency of project @openui5/themelib_sap_belize, "@openui5/sap.ui.unified": Distance to root of 2. Will be replaced by project with same ID and distance to root of 2.
verb normalizer:projectPreprocessor Dependency of project @openui5/sap.ui.unified, "@openui5/sap.ui.core": Distance to root of 3. Will be replaced by project with same ID and distance to root of 3.
verb types:application:ApplicationFormatter Formatting project ui5-tooling-test...
verb types:library:LibraryFormatter Could not find (optional) test directory of project @openui5/sap.m: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.m\src
verb types:library:LibraryFormatter Formatting 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 Could not find (optional) test directory of project @openui5/sap.ui.core: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.core\src
verb types:library:LibraryFormatter Formatting project sap.ui.core...
erb 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/themelib_sap_belize: C:\zdev\ui5-tooling-test\node_modules\@openui5\themelib_sap_belize\src
verb types:library:LibraryFormatter Formatting project themelib_sap_belize...
verb types:library:LibraryFormatter Ignoring 'test' directory for project themelib_sap_belize.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.unified: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.unified\src
verb types:library:LibraryFormatter Formatting project sap.ui.unified...
verb types:library:LibraryFormatter Ignoring 'test' directory for project sap.ui.unified.Either no setting was provided or the path not found.
verb normalizer:projectPreprocessor Processed 5 projects in 29 ms
Server started
URL: http://localhost:8080

Stack trace/log output: $ ui5 tree

C:\zdev\ui5-tooling-test>ui5 tree
β”œβ”€ id: ui5-tooling-test
β”œβ”€ version: 0.0.1
β”œβ”€ path: C:\zdev\ui5-tooling-test
└─ dependencies
   β”œβ”€ 0
   β”‚  β”œβ”€ id: @openui5/sap.m
   β”‚  β”œβ”€ version: 1.56.4
   β”‚  β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.m
   β”‚  └─ dependencies
   β”‚     β”œβ”€ 0
   β”‚     β”‚  β”œβ”€ id: @openui5/sap.ui.core
   β”‚     β”‚  β”œβ”€ version: 1.56.4
   β”‚     β”‚  β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.core
   β”‚     β”‚  └─ dependencies
   β”‚     └─ 1
   β”‚        β”œβ”€ id: @openui5/sap.ui.unified
   β”‚        β”œβ”€ version: 1.56.4
   β”‚        β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.unified
   β”‚        └─ dependencies
   β”‚           └─ 0
   β”‚              β”œβ”€ id: @openui5/sap.ui.core
   β”‚              β”œβ”€ version: 1.56.4
   β”‚              β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.core
   β”‚              └─ dependencies
   β”œβ”€ 1
   β”‚  β”œβ”€ id: @openui5/sap.ui.core
   β”‚  β”œβ”€ version: 1.56.4
   β”‚  β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.core
   β”‚  └─ dependencies
   └─ 2
      β”œβ”€ id: @openui5/themelib_sap_belize
      β”œβ”€ version: 1.56.4
      β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\themelib_sap_belize
      └─ dependencies
         β”œβ”€ 0
         β”‚  β”œβ”€ id: @openui5/sap.m
         β”‚  β”œβ”€ version: 1.56.4
         β”‚  β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.m
         β”‚  └─ dependencies
         β”‚     β”œβ”€ 0
         β”‚     β”‚  β”œβ”€ id: @openui5/sap.ui.core
         β”‚     β”‚  β”œβ”€ version: 1.56.4
         β”‚     β”‚  β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.core
         β”‚     β”‚  └─ dependencies
         β”‚     └─ 1
         β”‚        β”œβ”€ id: @openui5/sap.ui.unified
         β”‚        β”œβ”€ version: 1.56.4
         β”‚        β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.unified
         β”‚        └─ dependencies
         β”‚           └─ 0
         β”‚              β”œβ”€ id: @openui5/sap.ui.core
         β”‚              β”œβ”€ version: 1.56.4
         β”‚              β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.core
         β”‚              └─ dependencies
         β”œβ”€ 1
         β”‚  β”œβ”€ id: @openui5/sap.ui.core
         β”‚  β”œβ”€ version: 1.56.4
         β”‚  β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.core
         β”‚  └─ dependencies
         └─ 2
           β”œβ”€ id: @openui5/sap.ui.unified
            β”œβ”€ version: 1.56.4
            β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.unified
            └─ dependencies
               └─ 0
                  β”œβ”€ id: @openui5/sap.ui.core
                  β”œβ”€ version: 1.56.4
                  β”œβ”€ path: C:\zdev\ui5-tooling-test\node_modules\@openui5\sap.ui.core
                  └─ dependencies

missing files are served by index with HTTP 200

With the change introduced by SAP/ui5-server#23 now all missing files will be served by the serveIndex middleware.

Expected Behavior

missing files should actually be missing and yield 404 instead of 200 + index
Suggestion: if the requested resource is a folder the index will take over. Otherwise return 404.

Current Behavior

missing files are served by index with HTTP 200

Steps to reproduce the issue

https://localhost:8443/file/that/doesnt/exist

Context

  • ui5-cli: 0.2.0
  • ui5-server: 0.2.0

Affected components

serve issue with missing files but returned content from directory browsing

Expected Behavior

when previewing apps, dependencies like libraries loaded by library-preload.js
will throw errors, because the preload server always returns directory info for such files?!?

This issue would not appear if directory browsing would be disabled by default for serve.

Try this
http://localhost:8081/sillyfun.jpg
or
http://localhost:8081/sap/m/libary-preload.js

Error is

library-preload.js:1 Uncaught SyntaxError: Unexpected token <

Affected components

Consider replacing "archiver" dependency to reduce install size

https://github.com/archiverjs/node-archiver

❯ cd <empty directory>
❯ npm i archiver
❯ du -sh ./node_modules/
6.9M	./node_modules/

Related issues: archiverjs/node-archiver#197 and archiverjs/node-archiver#329

Possible alternatives (to be checked)

https://github.com/Stuk/jszip

❯ cd <empty directory>
❯ npm i jszip
❯ du -sh ./node_modules/
8.7M	./node_modules/

Related issue: Stuk/jszip#532

To be checked whether it matches our use-case.

https://github.com/cthackers/adm-zip

❯ cd <empty directory>
❯ npm i adm-zip
❯ du -sh ./node_modules/
168K	./node_modules/

To be checked whether it matches our use-case.

self-contained support for manifest.json

Expected Behavior

Using declarative objects like routing or models declared inside manifest.json,
it seems that they are currently not parsed

Current Behavior

self-contained app requests such controls/libs/etc via custom request

Steps to reproduce the issue

add routing to manifest.json for example router section with sap.m.roting.Router

Affected components

Workaround

Inside Component.js add missing dependencies like
"sap/m/routing/Router"
to take care into build

Tests fail after a fresh install since the release of `[email protected]`

Expected Behavior

Tests for ui5-builder should succeed.

Current Behavior

CSS related tests fail after a fresh npm install since the release of [email protected]

Steps to reproduce the issue

  1. rm -r node_modules
  2. npm install (or yarn or meta)
  3. npm run unit

Context

  • OS/Platform: doesn't matter...
  • Node.js Version: doesn't matter...
  • npm Version: doesn't matter...
  • Browser (if relevant): doesn't matter...
  • Other information: doesn't matter...

Affected components

Stack trace/log output

 - #sap-ui-theme-super\\.duper\\.looper { background-image: url('data:text/plain;utf-8,%7B%22deepSea%22:%22#123456%22%7D'); }␊
  + #sap-ui-theme-super\\.duper\\.looper { background-image: url('data:text/plain;utf-8,%7B%22deepSea%22:%22%23123456%22%7D'); }␊

Either the tests have to be adapted (and must be in sync with the installed less-openui5 version) or the version of less-openui5 must be hardwired to 0.5.3 until the whole topic has settled.

Forcefully add some classes (like sap/ui/core/ComponentSupport) to a self-contained build

Expected Behavior

Only the sap-ui-custom.js boostrap JavaScript should be loaded when a self-contained build is chosen. The boostrap should contain all classes needed to run the application.

Current Behavior

Some files are anyways loaded seperately, such as the sap/ui/core/ComponentSupport in case the data-sap-ui-oninit boostrap option is chosen to load a component.

Steps to reproduce the issue

  1. Change the index.html file of the samle application to load the ComponentContainer via the data-sap-ui-oninit="module:sap/ui/core/ComponentSupport" method
  2. Build & serve the sample app self-contained

Context

  • OS/Platform: Windows
  • Node.js Version: 10.11.0
  • npm Version: 6.4.1
  • Browser (if relevant): Chrome Dev.
  • Other information: Tested on 1.59.0

Affected components

[Diskussion] use of external processors/tasks

I'd like to ask for your opinion or plans on supporting 3rd party tools like babel in the ui5 build tools.

We're experimenting with using babel in our toolchain to be able to write "modern" JavaScript code but keep IE11 supported at the same time. Until now we did this by doing a babel compile step from src/**/*.js to build/**/*.js and then start grunt-openui5:openui5_preload on the build directory (after copying xml/json/properties there, too). This worked fine.

Having played around with the ui5-cli for some hours now, I really like the simplicity of its interface, but would really like to be able to keep using babel.

I could imagine something like a processors config option in the ui5.yaml which contains a list of additional processors to use in the chain. These could come as npm modules like grunt/gulp tasks do.

Is that somewhere on the roadmap?

Hide all non-public API from JSDoc

Expected Behavior

Only explicitly with @public annotated API should be visible in the JSDoc published to https://sap.github.io/ui5-tooling/

Current Behavior

API that is annotated as @public, @protected or not at all is visible in the JSDoc. Example: https://sap.github.io/ui5-tooling/AbstractReader.html#_byPath

Possible Solution

Step one

In every modules jsdoc.json add a new attribute "access": "public" to the "opt" object:

ui5-tooling/jsdoc.json

Lines 11 to 17 in 550ec7d

"opts": {
"template": "node_modules/docdash/",
"encoding": "utf8",
"destination": "jsdocs/",
"recurse": true,
"verbose": true
},

This will ignore all modules and functions that are not annotated with @public during JSDoc generation.

Step two

Annotate all public modules, and within them all public functions as @public.

Affected components

serve could watch file and directory changes to auto-refresh browser

Expected Behavior

I got used to webpack watch tool that listen to file and directory changes and trigger a recompilation automatically of the source code and triggers a browser refresh.

Current Behavior

(I assume) ui5 serve watches file and directory changes and they are available often it happens, but the browser refresh has to be triggered manually (ctrl shift r).

Steps to reproduce the issue

  1. Run ui5 serve -o /index.html;
  2. Change any file inside your project structure and save it;
  3. Refresh the browser without the need of running ui5 build.

Affected components

CSS files are not bundled for self-contained build (multiple CSS files are loaded for each library)

Expected Behavior

One CSS file for the whole self-contained build should be loaded, based on the theme selected.

Current Behavior

Multiple CSS files (per library) are loaded separately by the browser, causing some performance degragation.

Steps to reproduce the issue

  1. Build & serve the sample app self-contained
  2. Check network trace to see, that more than one CSS file is loaded

Context

  • OS/Platform: Windows
  • Node.js Version: 10.11.0
  • npm Version: 6.4.1
  • Browser (if relevant): Chrome Dev.
  • Other information: Tested on 1.59.0

Affected components

Add additional checks to CI tests

The Travis builds in all repos should also check for:

  • 1. Commit message style
    • Especially correct prefixes (e.g. [INTERNAL] ModuleName: Bla bla bla)
  • 2. Odd package-lock.json changes - obsolete
  • 3. SAP internal URLs
  • 4. Size of node_modules
    • Compare size of node_modules installation of a single module before and after a change
  • 5. Check for unused dependencies
  • 6. Compare CLI runtime before and after a change
  • 7. Check for new vulnerabilities in dependencies
    • Consider use of audit-ci
    • Also: WhiteSource

Not able to serve projects

Expected Behavior

It should serve a project and open the pages.

Current Behavior

It doesn't serve a project. No web page is accessible.

Steps to reproduce the issue

  1. Run $ ui5 serve
  2. Access any file on the browser, e.g., http://localhost:8080/test/openui5/smartmockserver/unit/SmartMockServer.html
  3. Result is: Cannot GET /test/openui5/smartmockserver/unit/SmartMockServer.html

Context

  • OS/Platform: Windows 10
  • Node.js Version: 8.11.3
  • npm Version: 6.1.0
  • Browser (if relevant): All of them
  • Other information: {...}

Affected components

Stack trace/log output

C:\zdev\openui5-smart-mockserver>ui5 serve --verbose
verb normalizer:normalizer Building dependency tree...
verb normalizer:translators:npm Analyzing openui5-smart-mockserver (C:\zdev\openui5-smart-mockserver) (dependency of nothing
- root project)
verb normalizer:translators:npm Analyzing faker (C:\zdev\openui5-smart-mockserver\node_modules\faker) (dependency of openui5-
smart-mockserver)
verb normalizer:translators:npm Analyzing @openui5/sap.ui.core (C:\zdev\openui5-smart-mockserver\node_modules\@openui5\sap.ui
.core) (dependency of openui5-smart-mockserver)
verb normalizer:translators:npm [PERF] Consider defining UI5-dependencies in the package.json files of the relevant modules f
rom the following list to improve npm translator execution time: openui5-smart-mockserver, faker, @openui5/sap.ui.core
verb normalizer:translators:npm Built tree:
verb normalizer:translators:npm { id: 'openui5-smart-mockserver',
verb normalizer:translators:npm   version: '0.1.6',
verb normalizer:translators:npm   path: 'C:\\zdev\\openui5-smart-mockserver',
verb normalizer:translators:npm   dependencies:
verb normalizer:translators:npm    [ { id: '@openui5/sap.ui.core',
verb normalizer:translators:npm        version: '1.56.2',
verb normalizer:translators:npm        path: 'C:\\zdev\\openui5-smart-mockserver\\node_modules\\@openui5\\sap.ui.core',
verb normalizer:translators:npm        dependencies: [] },
verb normalizer:translators:npm      { id: 'faker',
verb normalizer:translators:npm        version: '4.1.0',
verb normalizer:translators:npm        path: 'C:\\zdev\\openui5-smart-mockserver\\node_modules\\faker',
verb normalizer:translators:npm        dependencies: [] } ] }
verb normalizer:projectPreprocessor Failed to read configuration for project faker at "C:\zdev\openui5-smart-mockserver\node_
modules\faker\ui5.yaml". Error: ENOENT: no such file or directory, open 'C:\zdev\openui5-smart-mockserver\node_modules\faker\
ui5.yaml'
verb normalizer:projectPreprocessor Ignoring project faker with missing configuration (might be a non-UI5 dependency)
verb types:library:LibraryFormatter Formatting project openui5-smart-mockserver...
verb types:library:LibraryFormatter Could not find (optional) test directory of project @openui5/sap.ui.core: C:\zdev\openui5
-smart-mockserver\node_modules\@openui5\sap.ui.core\src
verb types:library:LibraryFormatter Formatting project sap.ui.core...
verb types:library:LibraryFormatter Ignoring 'test' directory for project sap.ui.core.Either no setting was provided or the p
ath not found.
verb types:library:LibraryFormatter Could not find .library file for project openui5-smart-mockserver
verb normalizer:projectPreprocessor Processed 3 projects in 25 ms
Server started
URL: http://localhost:8080



verb resources:tracing:Trace:paths [Trace: /
verb resources:tracing:Trace:paths   1.5 ms elapsed time
verb resources:tracing:Trace:paths   1 path stats
verb resources:tracing:Trace:paths   2 reader-collections involed:
verb resources:tracing:Trace:paths       2x source of openui5-smart-mockserver
verb resources:tracing:Trace:paths       1x dependencies of openui5-smart-mockserver
verb resources:tracing:Trace:paths ======================]
verb resources:tracing:Trace:paths [Trace: C:\
verb resources:tracing:Trace:paths   216 ΞΌs elapsed time
verb resources:tracing:Trace:paths   2 reader-collections involed:
verb resources:tracing:Trace:paths       2x source of openui5-smart-mockserver
verb resources:tracing:Trace:paths       1x dependencies of openui5-smart-mockserver
verb resources:tracing:Trace:paths ======================]
verb resources:tracing:total ==========================
verb resources:tracing:total [=> TRACE SUMMARY:
verb resources:tracing:total   14 ms elapsed time
verb resources:tracing:total   2 trace calls
verb resources:tracing:total   1 path stats
verb resources:tracing:total   2 rl-collections involed:
verb resources:tracing:total       4x source of openui5-smart-mockserver
verb resources:tracing:total       2x dependencies of openui5-smart-mockserver
verb resources:tracing:total ======================]

ui5 serve error message is misleading

Expected Behavior

If i start the ui5 server in a directory without a valid ui5.yaml file, it can't be served and I expect a meaningful error message like git does:
fatal: Not a git repository (or any of the parent directories): .git

Current Behavior

The current error message is misleading and it seems that the ui5 tooling has an issue:

Error: Failed to configure root project "openui5". Please check verbose log for details.
    at configPromises.push.configureProject.then ([...]\ui5-cli\node_modules\@ui5\project\lib\projectPreprocessor.js:66:13)

Steps to reproduce the issue

  1. open a console window
  2. Navigate into a directory without ui5.yaml (e.g. root directory of openui5)
  3. start the server with ui5 serve

Context

  • OS/Platform: ALL
  • Node.js Version: ALL
  • npm Version: ALL
  • Browser (if relevant): ALL
  • Other information: -

Affected components

Builder (kind of) fails when routes are defined as an object

Expected Behavior

Defining routes in the manifest.json as an object instead of an array should be perfectly "legal" (see sap.ui.routing.Router).

Current Behavior

The build throws errors, but "succeeded".
The only difference between a "bad build" and a "good build" (when using an array) seems to be the the manifest itself (d'oh!).

Steps to reproduce the issue

  1. Create a project
  2. add Routes to you manifest
      "routes": {
        "start": {
          "target": "return_list",
          "pattern": ""
        },
        "create_request": {
          "target": "create_request",
          "pattern": "create/{indices}"
        }
      },
  1. ui5 build
  2. watch it crash

Context

  • OS/Platform: fedora 27 linux
  • Node.js Version: 8.11.2
  • npm Version: 6.10
  • Other information: ui5/cli v0.0.2

Affected components

Stack trace/log output

ERR! ComponentAnalyzer TypeError: routing.routes.forEach is not a function
ERR! ComponentAnalyzer     at ComponentAnalyzer._analyzeManifest (/home/masch/code/customer/Project/node_modules/@ui5/builder/lib/lbt/analyzer/ComponentAnalyzer.js:117:19)
ERR! ComponentAnalyzer     at ComponentAnalyzer.analyze (/home/masch/code/customer/Project/node_modules/@ui5/builder/lib/lbt/analyzer/ComponentAnalyzer.js:56:9)
ERR! ComponentAnalyzer     at <anonymous>
ERR! ComponentAnalyzer     at process._tickCallback (internal/process/next_tick.js:188:7)

https://github.com/SAP/ui5-builder/blob/master/lib/lbt/analyzer/ComponentAnalyzer.js#L117

On the fly preload bundle generation

Expected Behavior

ui5-server should be able to generate library-preload.js and Component-preload.js bundles on the fly. This should speed up overall loading time of a served project in the browser. In addition, this should allow for proper performance testing during development by simulating the resource structure available in the production environment.

This should be controllable with one or more feature flags. It might make sense to influence which projects are being optimized. Possibly only those not being actively developed/changed.

Current Behavior

As the OpenUI5 npm dependencies do not contain any preload bundles, currently all required resources are loaded with single requests.

Steps to reproduce the issue

  1. Setup the openui5-sample-app
  2. Execute ui5 serve -o
  3. Check browser network trace for lots of requests and long overall loading time

Context

  • OS/Platform: all
  • Node.js Version: all
  • npm Version: all
  • Browser (if relevant): all

Affected components

Use local ui5 cli module over globally installed one

Expected Behavior

When executing ui5 --version in a project that has a version of the UI5 CLI installed in it's node_modules directory (e.g. because of a (dev)dependency to @ui5/cli), that module shall be used over any globally installed version of the UI5 CLI. Even if the ui5 command technically invokes the global module.

Current Behavior

When the UI5 CLI is installed locally in a project as well as globally, depending on how it is getting invoked, a user might end up using an unexpected version (if two different versions have been installed).

Steps to reproduce the issue

  1. Install the latest UI5 CLI globally: npm install --global @ui5/cli
  2. Inside a project with a package.json, install an old version of the CLI: npm install --global @ui5/[email protected]
  3. Create an npm script for ui5 --version to the package.json
  4. Execute ui5 --version directly and through the npm script
  5. Observe the different versions.

Context

  • OS/Platform: macOS
  • Node.js Version: v10.5.0
  • npm Version: 6.4.1

Affected components

Configuration in ui5.yaml file for the createDebugFiles Task

Expected Behavior

I would like to be able to write additional configuration in the ui5.yaml file for the createDebugFiles task to:

  1. skip a source file from being created with debug file
    • Example: there's a source file in our library, let's call it bootstrap.js. The file is used only for development time. Once the library is built, the content of this file is replaced completely but saved still under the same path. We also create a bundle for being used under debug mode. This means that we create two bundles, bootstrap.js and bootstrap-dbg.js. We need a configuration to skip the creation of the bootstrap-dbg.js otherwise the dbg file is created by copy the content of the bootstrap.js bundle which is different than the bootstrap-dbg.js bundle.
  2. specify the bundles which are created in createBundle task to be created with debug files
    • some of our bundle files should also be created with debug files. Because they don't appear as source files but only be created in the createBundle task, they are currently not being considered in the createdDebugFiles task.

Current Behavior

Debug files are created for each and every javascript source file. There's no way to add additional and to skip the existing source files.

Affected components

Misspelled word directory in README

Expected Behavior

Then, in the my-app directory, use that link to replace the registry package:

Current Behavior

Then, in the my-app direcotry, use that link to replace the registry package:

Steps to reproduce the issue

  1. Read the documentation when you are new to UI5 Tooling.

npm translator chokes on certain dependency

Expected Behavior

The ui5 tree command should present the projects dependency tree

Current Behavior

If the package.json contains a dependency to ui5-schemas (and possibly others), ui5 tree never returns and needs to be killed manually.

Steps to reproduce the issue

  1. git clone -b ui5-tooling https://github.com/SAP/openui5-sample-app.git
  2. npm install ui5-schemas
  3. ui5 tree

Context

  • OS/Platform: macOS 10.13.5
  • Node.js Version: v10.2.0
  • npm Version: 6.1.0
  • Browser (if relevant): {...}
  • Other information: {...}

Affected components

Stack trace/log output

❯ ui5 tree --verbose                       
verb normalizer:normalizer Building dependency tree...
verb normalizer:translators:npm Analyzing openui5-sample-app ([...]/openui5-sample-app) (depenency of nothing - root project)
verb normalizer:translators:npm Analyzing ui5-schemas ([...]/openui5-sample-app/node_modules/ui5-schemas) (depenency of openui5-sample-app)
verb normalizer:translators:npm Analyzing @openui5/themelib_sap_belize ([...]/openui5-sample-app/node_modules/@openui5/themelib_sap_belize) (depenency of openui5-sample-app)
verb normalizer:translators:npm Analyzing @openui5/sap.ui.core ([...]/openui5-sample-app/node_modules/@openui5/sap.ui.core) (depenency of openui5-sample-app)
verb normalizer:translators:npm Analyzing @openui5/sap.m ([...]/openui5-sample-app/node_modules/@openui5/sap.m) (depenency of openui5-sample-app)
verb normalizer:translators:npm Analyzing fs-extra ([...]/openui5-sample-app/node_modules/fs-extra) (depenency of ui5-schemas)
verb normalizer:translators:npm Analyzing request ([...]/openui5-sample-app/node_modules/request) (depenency of ui5-schemas)
verb normalizer:translators:npm Analyzing minilog ([...]/openui5-sample-app/node_modules/minilog) (depenency of ui5-schemas)
verb normalizer:translators:npm Analyzing xml2js ([...]/openui5-sample-app/node_modules/xml2js) (depenency of ui5-schemas)
verb normalizer:translators:npm Analyzing yargs ([...]/openui5-sample-app/node_modules/yargs) (depenency of ui5-schemas)
verb normalizer:translators:npm Analyzing @openui5/sap.ui.unified ([...]/openui5-sample-app/node_modules/@openui5/sap.ui.unified) (depenency of @openui5/sap.m)
verb normalizer:translators:npm Analyzing graceful-fs ([...]/openui5-sample-app/node_modules/graceful-fs) (depenency of fs-extra)
verb normalizer:translators:npm Analyzing aws-sign2 ([...]/openui5-sample-app/node_modules/aws-sign2) (depenency of request)
verb normalizer:translators:npm Analyzing jsonfile ([...]/openui5-sample-app/node_modules/jsonfile) (depenency of fs-extra)
verb normalizer:translators:npm Analyzing universalify ([...]/openui5-sample-app/node_modules/universalify) (depenency of fs-extra)
verb normalizer:translators:npm Analyzing aws4 ([...]/openui5-sample-app/node_modules/aws4) (depenency of request)
verb normalizer:translators:npm Analyzing combined-stream ([...]/openui5-sample-app/node_modules/combined-stream) (depenency of request)
verb normalizer:translators:npm Analyzing caseless ([...]/openui5-sample-app/node_modules/caseless) (depenency of request)
verb normalizer:translators:npm Analyzing extend ([...]/openui5-sample-app/node_modules/extend) (depenency of request)
verb normalizer:translators:npm Analyzing forever-agent ([...]/openui5-sample-app/node_modules/forever-agent) (depenency of request)
verb normalizer:translators:npm Analyzing form-data ([...]/openui5-sample-app/node_modules/form-data) (depenency of request)
verb normalizer:translators:npm Analyzing har-validator ([...]/openui5-sample-app/node_modules/har-validator) (depenency of request)
verb normalizer:translators:npm Analyzing http-signature ([...]/openui5-sample-app/node_modules/http-signature) (depenency of request)
verb normalizer:translators:npm Analyzing is-typedarray ([...]/openui5-sample-app/node_modules/is-typedarray) (depenency of request)
verb normalizer:translators:npm Analyzing isstream ([...]/openui5-sample-app/node_modules/isstream) (depenency of request)
verb normalizer:translators:npm Analyzing mime-types ([...]/openui5-sample-app/node_modules/mime-types) (depenency of request)
verb normalizer:translators:npm Analyzing oauth-sign ([...]/openui5-sample-app/node_modules/oauth-sign) (depenency of request)
verb normalizer:translators:npm Analyzing json-stringify-safe ([...]/openui5-sample-app/node_modules/json-stringify-safe) (depenency of request)
verb normalizer:translators:npm Analyzing performance-now ([...]/openui5-sample-app/node_modules/performance-now) (depenency of request)
verb normalizer:translators:npm Analyzing qs ([...]/openui5-sample-app/node_modules/qs) (depenency of request)
verb normalizer:translators:npm Analyzing tough-cookie ([...]/openui5-sample-app/node_modules/tough-cookie) (depenency of request)
verb normalizer:translators:npm Analyzing safe-buffer ([...]/openui5-sample-app/node_modules/safe-buffer) (depenency of request)
verb normalizer:translators:npm Analyzing tunnel-agent ([...]/openui5-sample-app/node_modules/tunnel-agent) (depenency of request)
verb normalizer:translators:npm Analyzing uuid ([...]/openui5-sample-app/node_modules/uuid) (depenency of request)
verb normalizer:translators:npm Analyzing microee ([...]/openui5-sample-app/node_modules/microee) (depenency of minilog)
verb normalizer:translators:npm Analyzing sax ([...]/openui5-sample-app/node_modules/sax) (depenency of xml2js)
verb normalizer:translators:npm Analyzing xmlbuilder ([...]/openui5-sample-app/node_modules/xmlbuilder) (depenency of xml2js)
verb normalizer:translators:npm Analyzing camelcase ([...]/openui5-sample-app/node_modules/camelcase) (depenency of yargs)
verb normalizer:translators:npm Analyzing decamelize ([...]/openui5-sample-app/node_modules/decamelize) (depenency of yargs)
verb normalizer:translators:npm Analyzing get-caller-file ([...]/openui5-sample-app/node_modules/get-caller-file) (depenency of yargs)
verb normalizer:translators:npm Analyzing cliui ([...]/openui5-sample-app/node_modules/cliui) (depenency of yargs)
verb normalizer:translators:npm Analyzing os-locale ([...]/openui5-sample-app/node_modules/os-locale) (depenency of yargs)
verb normalizer:translators:npm Analyzing require-directory ([...]/openui5-sample-app/node_modules/require-directory) (depenency of yargs)
verb normalizer:translators:npm Analyzing require-main-filename ([...]/openui5-sample-app/node_modules/require-main-filename) (depenency of yargs)
verb normalizer:translators:npm Analyzing read-pkg-up ([...]/openui5-sample-app/node_modules/read-pkg-up) (depenency of yargs)
verb normalizer:translators:npm Analyzing set-blocking ([...]/openui5-sample-app/node_modules/set-blocking) (depenency of yargs)
verb normalizer:translators:npm Analyzing string-width ([...]/openui5-sample-app/node_modules/string-width) (depenency of yargs)
verb normalizer:translators:npm Analyzing y18n ([...]/openui5-sample-app/node_modules/y18n) (depenency of yargs)
verb normalizer:translators:npm Analyzing which-module ([...]/openui5-sample-app/node_modules/which-module) (depenency of yargs)
verb normalizer:translators:npm Analyzing yargs-parser ([...]/openui5-sample-app/node_modules/yargs-parser) (depenency of yargs)
verb normalizer:translators:npm Analyzing string-width ([...]/openui5-sample-app/node_modules/cliui/node_modules/string-width) (depenency of cliui)
verb normalizer:translators:npm Analyzing is-fullwidth-code-point ([...]/openui5-sample-app/node_modules/string-width/node_modules/is-fullwidth-code-point) (depenency of string-width)
verb normalizer:translators:npm Analyzing strip-ansi ([...]/openui5-sample-app/node_modules/string-width/node_modules/strip-ansi) (depenency of string-width)
verb normalizer:translators:npm Analyzing asynckit ([...]/openui5-sample-app/node_modules/asynckit) (depenency of form-data)
verb normalizer:translators:npm Analyzing delayed-stream ([...]/openui5-sample-app/node_modules/delayed-stream) (depenency of combined-stream)
verb normalizer:translators:npm Analyzing ajv ([...]/openui5-sample-app/node_modules/ajv) (depenency of har-validator)
verb normalizer:translators:npm Analyzing assert-plus ([...]/openui5-sample-app/node_modules/assert-plus) (depenency of http-signature)
verb normalizer:translators:npm Analyzing har-schema ([...]/openui5-sample-app/node_modules/har-schema) (depenency of har-validator)
verb normalizer:translators:npm Analyzing sshpk ([...]/openui5-sample-app/node_modules/sshpk) (depenency of http-signature)
verb normalizer:translators:npm Analyzing jsprim ([...]/openui5-sample-app/node_modules/jsprim) (depenency of http-signature)
verb normalizer:translators:npm Analyzing mime-db ([...]/openui5-sample-app/node_modules/mime-db) (depenency of mime-types)
verb normalizer:translators:npm Analyzing strip-ansi ([...]/openui5-sample-app/node_modules/strip-ansi) (depenency of cliui)
verb normalizer:translators:npm Analyzing punycode ([...]/openui5-sample-app/node_modules/punycode) (depenency of tough-cookie)
verb normalizer:translators:npm Analyzing execa ([...]/openui5-sample-app/node_modules/execa) (depenency of os-locale)
verb normalizer:translators:npm Analyzing wrap-ansi ([...]/openui5-sample-app/node_modules/wrap-ansi) (depenency of cliui)
verb normalizer:translators:npm Analyzing lcid ([...]/openui5-sample-app/node_modules/lcid) (depenency of os-locale)
verb normalizer:translators:npm Analyzing mem ([...]/openui5-sample-app/node_modules/mem) (depenency of os-locale)
verb normalizer:translators:npm Analyzing find-up ([...]/openui5-sample-app/node_modules/find-up) (depenency of read-pkg-up)
verb normalizer:translators:npm Analyzing read-pkg ([...]/openui5-sample-app/node_modules/read-pkg) (depenency of read-pkg-up)
verb normalizer:translators:npm Analyzing string-width ([...]/openui5-sample-app/node_modules/wrap-ansi/node_modules/string-width) (depenency of wrap-ansi)
verb normalizer:translators:npm Analyzing ansi-regex ([...]/openui5-sample-app/node_modules/string-width/node_modules/ansi-regex) (depenency of strip-ansi)
verb normalizer:translators:npm Analyzing fast-deep-equal ([...]/openui5-sample-app/node_modules/fast-deep-equal) (depenency of ajv)
verb normalizer:translators:npm Analyzing json-schema-traverse ([...]/openui5-sample-app/node_modules/json-schema-traverse) (depenency of ajv)
verb normalizer:translators:npm Analyzing co ([...]/openui5-sample-app/node_modules/co) (depenency of ajv)
verb normalizer:translators:npm Analyzing fast-json-stable-stringify ([...]/openui5-sample-app/node_modules/fast-json-stable-stringify) (depenency of ajv)
verb normalizer:translators:npm Analyzing asn1 ([...]/openui5-sample-app/node_modules/asn1) (depenency of sshpk)
verb normalizer:translators:npm Analyzing bcrypt-pbkdf ([...]/openui5-sample-app/node_modules/bcrypt-pbkdf) (depenency of sshpk)
verb normalizer:translators:npm Analyzing dashdash ([...]/openui5-sample-app/node_modules/dashdash) (depenency of sshpk)
verb normalizer:translators:npm Analyzing ecc-jsbn ([...]/openui5-sample-app/node_modules/ecc-jsbn) (depenency of sshpk)
verb normalizer:translators:npm Analyzing safer-buffer ([...]/openui5-sample-app/node_modules/safer-buffer) (depenency of sshpk)
verb normalizer:translators:npm Analyzing jsbn ([...]/openui5-sample-app/node_modules/jsbn) (depenency of sshpk)
verb normalizer:translators:npm Analyzing tweetnacl ([...]/openui5-sample-app/node_modules/tweetnacl) (depenency of sshpk)
verb normalizer:translators:npm Analyzing getpass ([...]/openui5-sample-app/node_modules/getpass) (depenency of sshpk)
verb normalizer:translators:npm Analyzing extsprintf ([...]/openui5-sample-app/node_modules/extsprintf) (depenency of jsprim)
verb normalizer:translators:npm Analyzing json-schema ([...]/openui5-sample-app/node_modules/json-schema) (depenency of jsprim)
verb normalizer:translators:npm Analyzing verror ([...]/openui5-sample-app/node_modules/verror) (depenency of jsprim)
verb normalizer:translators:npm Analyzing ansi-regex ([...]/openui5-sample-app/node_modules/ansi-regex) (depenency of strip-ansi)
verb normalizer:translators:npm Analyzing cross-spawn ([...]/openui5-sample-app/node_modules/cross-spawn) (depenency of execa)
verb normalizer:translators:npm Analyzing is-stream ([...]/openui5-sample-app/node_modules/is-stream) (depenency of execa)
verb normalizer:translators:npm Analyzing get-stream ([...]/openui5-sample-app/node_modules/get-stream) (depenency of execa)
verb normalizer:translators:npm Analyzing p-finally ([...]/openui5-sample-app/node_modules/p-finally) (depenency of execa)
verb normalizer:translators:npm Analyzing npm-run-path ([...]/openui5-sample-app/node_modules/npm-run-path) (depenency of execa)
verb normalizer:translators:npm Analyzing signal-exit ([...]/openui5-sample-app/node_modules/signal-exit) (depenency of execa)
verb normalizer:translators:npm Analyzing strip-eof ([...]/openui5-sample-app/node_modules/strip-eof) (depenency of execa)
verb normalizer:translators:npm Analyzing invert-kv ([...]/openui5-sample-app/node_modules/invert-kv) (depenency of lcid)
verb normalizer:translators:npm Analyzing mimic-fn ([...]/openui5-sample-app/node_modules/mimic-fn) (depenency of mem)
verb normalizer:translators:npm Analyzing locate-path ([...]/openui5-sample-app/node_modules/locate-path) (depenency of find-up)
verb normalizer:translators:npm Analyzing path-type ([...]/openui5-sample-app/node_modules/path-type) (depenency of read-pkg)
verb normalizer:translators:npm Analyzing load-json-file ([...]/openui5-sample-app/node_modules/load-json-file) (depenency of read-pkg)
verb normalizer:translators:npm Analyzing normalize-package-data ([...]/openui5-sample-app/node_modules/normalize-package-data) (depenency of read-pkg)
verb normalizer:translators:npm Analyzing is-fullwidth-code-point ([...]/openui5-sample-app/node_modules/is-fullwidth-code-point) (depenency of string-width)
verb normalizer:translators:npm Analyzing code-point-at ([...]/openui5-sample-app/node_modules/code-point-at) (depenency of string-width)
verb normalizer:translators:npm Analyzing lru-cache ([...]/openui5-sample-app/node_modules/lru-cache) (depenency of cross-spawn)
verb normalizer:translators:npm Analyzing shebang-command ([...]/openui5-sample-app/node_modules/shebang-command) (depenency of cross-spawn)
verb normalizer:translators:npm Analyzing core-util-is ([...]/openui5-sample-app/node_modules/core-util-is) (depenency of verror)
verb normalizer:translators:npm Analyzing path-key ([...]/openui5-sample-app/node_modules/path-key) (depenency of npm-run-path)
verb normalizer:translators:npm Analyzing which ([...]/openui5-sample-app/node_modules/which) (depenency of cross-spawn)
verb normalizer:translators:npm Analyzing p-locate ([...]/openui5-sample-app/node_modules/p-locate) (depenency of locate-path)
verb normalizer:translators:npm Analyzing path-exists ([...]/openui5-sample-app/node_modules/path-exists) (depenency of locate-path)
verb normalizer:translators:npm Analyzing pify ([...]/openui5-sample-app/node_modules/pify) (depenency of path-type)
verb normalizer:translators:npm Analyzing strip-bom ([...]/openui5-sample-app/node_modules/strip-bom) (depenency of load-json-file)
verb normalizer:translators:npm Analyzing parse-json ([...]/openui5-sample-app/node_modules/parse-json) (depenency of load-json-file)
verb normalizer:translators:npm Analyzing hosted-git-info ([...]/openui5-sample-app/node_modules/hosted-git-info) (depenency of normalize-package-data)
verb normalizer:translators:npm Analyzing is-builtin-module ([...]/openui5-sample-app/node_modules/is-builtin-module) (depenency of normalize-package-data)
verb normalizer:translators:npm Analyzing validate-npm-package-license ([...]/openui5-sample-app/node_modules/validate-npm-package-license) (depenency of normalize-package-data)
verb normalizer:translators:npm Analyzing semver ([...]/openui5-sample-app/node_modules/semver) (depenency of normalize-package-data)
verb normalizer:translators:npm Analyzing number-is-nan ([...]/openui5-sample-app/node_modules/number-is-nan) (depenency of is-fullwidth-code-point)
verb normalizer:translators:npm Analyzing pseudomap ([...]/openui5-sample-app/node_modules/pseudomap) (depenency of lru-cache)
verb normalizer:translators:npm Analyzing yallist ([...]/openui5-sample-app/node_modules/yallist) (depenency of lru-cache)
verb normalizer:translators:npm Analyzing shebang-regex ([...]/openui5-sample-app/node_modules/shebang-regex) (depenency of shebang-command)
verb normalizer:translators:npm Analyzing isexe ([...]/openui5-sample-app/node_modules/isexe) (depenency of which)
verb normalizer:translators:npm Analyzing p-limit ([...]/openui5-sample-app/node_modules/p-limit) (depenency of p-locate)
verb normalizer:translators:npm Analyzing error-ex ([...]/openui5-sample-app/node_modules/error-ex) (depenency of parse-json)
verb normalizer:translators:npm Analyzing builtin-modules ([...]/openui5-sample-app/node_modules/builtin-modules) (depenency of is-builtin-module)
verb normalizer:translators:npm Analyzing spdx-correct ([...]/openui5-sample-app/node_modules/spdx-correct) (depenency of validate-npm-package-license)
verb normalizer:translators:npm Analyzing spdx-expression-parse ([...]/openui5-sample-app/node_modules/spdx-expression-parse) (depenency of validate-npm-package-license)
verb normalizer:translators:npm Analyzing p-try ([...]/openui5-sample-app/node_modules/p-try) (depenency of p-limit)
verb normalizer:translators:npm Analyzing is-arrayish ([...]/openui5-sample-app/node_modules/is-arrayish) (depenency of error-ex)
verb normalizer:translators:npm Analyzing spdx-license-ids ([...]/openui5-sample-app/node_modules/spdx-license-ids) (depenency of spdx-correct)
verb normalizer:translators:npm Analyzing spdx-exceptions ([...]/openui5-sample-app/node_modules/spdx-exceptions) (depenency of spdx-expression-parse)
verb normalizer:translators:npm [PERF] Consider defining UI5-dependencies in the package.json files of the relevant modules from the following list to improve npm translator execution time: openui5-sample-app, ui5-schemas, @openui5/themelib_sap_belize, @openui5/sap.ui.core, @openui5/sap.m, fs-extra, request, minilog, xml2js, yargs, @openui5/sap.ui.unified, graceful-fs, aws-sign2, jsonfile, universalify, aws4, combined-stream, caseless, extend, forever-agent, form-data, har-validator, http-signature, is-typedarray, isstream, mime-types, oauth-sign, json-stringify-safe, performance-now, qs, tough-cookie, safe-buffer, tunnel-agent, uuid, microee, sax, xmlbuilder, camelcase, decamelize, get-caller-file, cliui, os-locale, require-directory, require-main-filename, read-pkg-up, set-blocking, string-width, y18n, which-module, yargs-parser, string-width, is-fullwidth-code-point, strip-ansi, asynckit, delayed-stream, ajv, assert-plus, har-schema, sshpk, jsprim, mime-db, strip-ansi, punycode, execa, wrap-ansi, lcid, mem, find-up, read-pkg, string-width, ansi-regex, fast-deep-equal, json-schema-traverse, co, fast-json-stable-stringify, asn1, bcrypt-pbkdf, dashdash, ecc-jsbn, safer-buffer, jsbn, tweetnacl, getpass, extsprintf, json-schema, verror, ansi-regex, cross-spawn, is-stream, get-stream, p-finally, npm-run-path, signal-exit, strip-eof, invert-kv, mimic-fn, locate-path, path-type, load-json-file, normalize-package-data, is-fullwidth-code-point, code-point-at, lru-cache, shebang-command, core-util-is, path-key, which, p-locate, path-exists, pify, strip-bom, parse-json, hosted-git-info, is-builtin-module, validate-npm-package-license, semver, number-is-nan, pseudomap, yallist, shebang-regex, isexe, p-limit, error-ex, builtin-modules, spdx-correct, spdx-expression-parse, p-try, is-arrayish, spdx-license-ids, spdx-exceptions
verb normalizer:translators:npm Built tree:
verb normalizer:translators:npm { id: 'openui5-sample-app',
verb normalizer:translators:npm   version: '0.2.0',
verb normalizer:translators:npm   path: '[...]/openui5-sample-app',
verb normalizer:translators:npm   dependencies:
verb normalizer:translators:npm    [ { id: '@openui5/sap.m',
verb normalizer:translators:npm        version: '1.56.2',
verb normalizer:translators:npm        path:
verb normalizer:translators:npm         '[...]/openui5-sample-app/node_modules/@openui5/sap.m',
verb normalizer:translators:npm        dependencies: [Array] },
verb normalizer:translators:npm      { id: '@openui5/sap.ui.core',
verb normalizer:translators:npm        version: '1.56.2',
verb normalizer:translators:npm        path:
verb normalizer:translators:npm         '[...]/openui5-sample-app/node_modules/@openui5/sap.ui.core',
verb normalizer:translators:npm        dependencies: [] },
verb normalizer:translators:npm      { id: '@openui5/themelib_sap_belize',
verb normalizer:translators:npm        version: '1.56.2',
verb normalizer:translators:npm        path:
verb normalizer:translators:npm         '[...]/openui5-sample-app/node_modules/@openui5/themelib_sap_belize',
verb normalizer:translators:npm        dependencies: [] },
verb normalizer:translators:npm      { id: 'ui5-schemas',
verb normalizer:translators:npm        version: '0.3.1',
verb normalizer:translators:npm        path:
verb normalizer:translators:npm         '[...]/openui5-sample-app/node_modules/ui5-schemas',
verb normalizer:translators:npm        dependencies: [Array] } ] }

ui5-builder doesn't clear /dest/ folder

Expected Behavior

ui5-builder should clear /dest/ folder before writing new files. It'd avoid unwanted rubbish files in the new version.

Current Behavior

ui5-builder doesn't clear /dest/ folder, if I have old unused files from a previous build, they will remain there after building a new version.

Steps to reproduce the issue

  1. Run $ ui5 build
  2. Delete some files from your /src/ folder
  3. Run $ ui5 build
  4. Files deleted from /src/ will remain in /dest/

Affected components

ui5 tree / serve command does not give output

Expected Behavior

After ui5 init I expected to have results when launching ui5 tree. Also when launching ui5 serve I expect to have a webserver (localhost)

Current Behavior

Both ui5 tree and serve give no output and it looks like the command line is expecting something more. I have to abort the command line to return to the terminal.

Steps to reproduce the issue

  1. install node 10.4.1.
  2. npm install --global @ui5/cli
  3. ui5 --version -> 0.0.2
  4. ui5 init
  5. ui5 serve or ui5 tree

After adding --verbose I see a lot of dependencies being checked and finally the cli looks like to be stopped.

verb normalizer:translators:npm   dependencies:
verb normalizer:translators:npm    [ { id: 'gulp-css-condense',
verb normalizer:translators:npm        version: '1.1.2',
verb normalizer:translators:npm        path:
verb normalizer:translators:npm         '/Users/Noel/XXXX/myapp/node_modules/gulp-css-condense',
verb normalizer:translators:npm        dependencies: [Array] },
verb normalizer:translators:npm      { id: 'gulp-ruby-sass',
verb normalizer:translators:npm        version: '3.0.0',
verb normalizer:translators:npm        path:
verb normalizer:translators:npm         '/Users/Noel/myapp/node_modules/gulp-ruby-sass',
verb normalizer:translators:npm        dependencies: [Array] },
verb normalizer:translators:npm      { id: 'ui5-schemas',
verb normalizer:translators:npm        version: '0.3.1',
verb normalizer:translators:npm        path:
verb normalizer:translators:npm         '/Users/Noel/myapp/node_modules/ui5-schemas',
verb normalizer:translators:npm        dependencies: [Array] } ] }

This is an existing ui5 project with gulp files setup already.

Context

  • OS/Platform: Mac
  • Node.js Version: 10.4.1
  • npm Version: 6.1.0
  • Browser (if relevant): {...}
  • Other information: {...}

Affected components

Stack trace/log output

{logs}

Error handling: Resource Component-preload.js has no content

Expected Behavior

After running ui5 init the project should be able to build the project

Current Behavior

After running ui5 init the build fails because there is no metadata.namespace property in the ui5.yaml file.

Steps to reproduce the issue

  1. clone an existing project
  2. run ui5 init
  3. run ui5 build
  4. get error Error: Resource Component-preload.js has no content

Context

  • OS/Platform: Win10
  • Node.js Version: 8.9.4
  • npm Version: 5.8.0

Affected components

Resolution

Perhaps the namespace could be read from the sap.app.id in the manifest.json file if it exists. If it does not exist then output warning the user or even a prompt for input might be acceptable? Also in the build perhaps a check could be performed if the namespace field exists and throws a meaningful error in its absence.

Add task for generation of a sap-ui-cachebuster-info.json file

Unlike the grunt-sapui5-bestpractice-build plugin, the ui5-builder does not generate a sap-ui-cachebuster-info.json file in order to enable cache busting for application resources on supported backend systems.

Expected Behavior

Generate a sap-ui-cachebuster-info.json file containing the last modified timestamps of all files that are included in the build.

Current Behavior

Not supported as of now

Affected components

Full demo coverage to create and integrate a custom library

I write a lot of custom libraries both for daily work usage (in client projects) and for fun/learning/sharing. I have a lot of already made custom library all built and tested with the old grunt-openui5 and I would like to switch to the new build tool but as far as I can see I feel it's missing something right now.

I know that the tool is still in beta and not ready for production but I would like to create here an opportunity to improve the current status with some use-case and real work scenario.

I will describe what usually are my needs/approach (and I think this scenario is really common in dev life) and what I feel is missing when I tried to port my openui5-qrcode library from the old grunt-openui5 approach to the new ui5-tooling.

Most of my libraries are a wrapper of existing JS libraries/features that are missing from the UI5 framework.

For this example, I will use Flatpickr as the use case and the openui5-flatpickr library I created.
The current (or at least at the time I needed it) DatePicker / DateRangePicker was not a good fit for the project I was developing. It was ugly (mostly because I had to use SAPUI5 v1.28.x) and buggy and was lacking some features important for the UI/UX of the process.
This library is perfect for this example because it includes both external JS and CSS files needed to be included in the distributed version of the library.

  1. Choose the external library I want to include and wrap
  2. Create the custom library project initializing the npm package.json config
  3. Install all the dependency needed to build the project
  4. Install flatpickr (or the lib you want to wrap) as a dev dependency (it's only needed during the build phase)
  5. Create the library.js and all custom controls needed for the project
  6. Build and export the custom library
  7. Integrate the custom library as an npm dependency inside your client app project
  8. Integrate the customn library as an npm dependency inside my WebIDE project

Include external libraries as NPM dependency

In step 5 I want to use reference both JS and CSS of the flatpickr library from the node_modules folder. First of all, because in my build chain I've created the custom library only for a specific version of the lib and second of all because I don't want to have a static file inside my lib project (as it should be). In the previous version, I was doing that both from base/library.source.less and from the FlatDatePicker.js. That reference will be handled automatically thanks to the GruntJS configuration of openui5_them and openui5_preload.

This is not possible at all with the new ui5-tooling. I MUST include the CSS/js file directly into my SRC folder and so I'm not using the dependency system that I should use.

More examples

At the moment the only example you have is the one from the openui5-sample-app.
I would like to see an official example that explains how you should (and it will be the official standard approach) create a custom library, test it locally, build and publish.
This example should be the more complex one (including external libraries).
After it, I would like to see how I should correctly include it inside a local project and one inside a WebIDE project.

Integration with WebIDE

@RandomByte said that they're in talks to bring ui5-tooling into the WebIDE pipeline but there's not a timeline yet. I would like to know more about this from both the team.
We have the first release of an important tool inside our dev chain and for us, it's important to have it integrated inside our primary tool used to develop apps on SCP.

More documentation

I would like to have a good coverage of all the ui5 tools documentation to better understand all the features I can use/configure. At the moment you just have a bunch of options known and only really a few examples from which you can extract info.

Conclusion

I know that this is really a lot of work and that the core team as other priorities and task.
But open source and the OpenUI5 community is also here for this purpose. Do you need help? Do you need to cover some aspect? We can talk and create a common and publish TODO List that we can try to cover together if and when possible.

So, please, talk with us, asking in which way you can improve these tools and what is needed/missing/not documented enough.

${version} is not replaced in manifest.json files

Expected Behavior

When building my webapp, string "${version}" should be replace in manifest.json

Current Behavior

ui5-builder creates a

Steps to reproduce the issue

  1. Checkout the official sample app https://github.com/SAP/openui5-sample-app/tree/ui5-tooling

  2. Edit manifest.json file to:
    "sap.app": {
    "id": "sap.ui.demo.todo",
    "type": "application",
    "applicationVersion": {
    "version": "${version}"
    }
    },

  3. Run $ui5 build

  4. Check the built version and open manifest.json file.

Context

  • OS/Platform: *
  • Node.js Version: *
  • npm Version: *
  • Other information: ui5-builder v0.2.1

Affected components

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.