npm runs UI5!
We have really good times for robust UI5 development thanks to the tools available for usage locally using Node & npm (sorry SAP Web IDE…). Maybe they are not essential for coding, but for those ones who like to shorten, automate or tweak many processes around development tasks – npm run … can do plenty of good stuff.
Here’s an extract of some tasks helpful for my development cases. I hope these examples will serve as an advertisement and a review of tools around UI5.
- local – starts a local version of my app, based on a mock server. It uses ui5-tooling for running web server.
- local-sync – starts browsersync for auto-reloading of the app after each change in “webapp” folder [there is also ui5-middleware-livereload for ui5 serve]
- local-with-sync – combines the both tasks, npm-run-all used for parallelizing them
- proxy – runs the application connected to the real backend, with URL rewriting. This is configured using Grunt with connect, proxy and watch tasks [can be done with ui5-middleware-simpleproxy I guess]
- proxy-sync and proxy-with-sync – similar as with local scripts – browsersync for reloading the brower
- eslint – run ESLint over webapp *.js files
- analyze – runs very nice ui5-migration tool, which checks for deprecated API and optimalization hints for my target UI5 version
- fix – like above, but this time ui5-migration tool will apply corrections.
- uiveri5 – runs e2e tests prepared with uiveri5 tool.
- uiveri5-timeout – like above, but with timeout at the beginning required for the next task…
- proxy-check – …which is full check of the app: run ESLint, then analyze with ui5-migration, then run unit and integration tests using Karma and finally e2e tests – but a server with proxy is first started, so uiveri5 needs to wait. I’m using simple timeout command, as wait-on seems to have this issue on my computer.
- check – like above, but a proxy server is already started
- deploy-dev – prepare the app using ui5-tooling build, which is next uploaded to the development server using Grunt task based on grunt-nwabap-ui5uploader.