zowe / zlux

The top-level superproject for zLUX. zLUX includes the Zowe Desktop framework in addition to several built-in apps and an example server implementation.
Eclipse Public License 2.0
38 stars 42 forks source link

[SPIKE] - Work on Angular upgrade prototype by reviewing OneIdentity project #1017

Open DivergentEuropeans opened 2 months ago

DivergentEuropeans commented 2 months ago

Part of last sprint's SPIKE involved looking at multiple paths forward towards an Angular upgrade. I also reached out to Leonty who gave me some insights on what he would do and research if he had to, which led us to these findings -->

Thanks. Angular went through major changes recently, and my PR is outdated. Now, you have to compile desktop plugins using the Angular compiler, so use '@ngtools/webpack' or angular-cli. you have to update the desktop to Angular v15 or v16. Just comment out the plugin loading code for now, compile it as a library with the Angular compiler using @ngtools/webpack or angular-cli.  After that, modify the bootstrap to load the fresh desktop as an ESM module.Good luck with it!

I would recommend starting here: https://stackoverflow.com/questions/75445012/how-do-you-load-precompiled-angular-libraries-as-dynamic-modules.They had a plugin loader very similar to ours at https://github.com/OneIdentity/IdentityManager.Imx/blob/v82/imxweb/projects/qbm/src/lib/plugins/plugin-loader.service.ts, but they used SystemJS instead of RequireJS.They were able to move towards Angular 13 and load pre-compiled plugins using a workaround with the SystemJS Babel plugin: https://github.com/OneIdentity/IdentityManager.Imx/blob/v92/imxweb/projects/qbm/src/lib/plugins/plugin-loader.service.ts. (edited) plugin-loader.service.ts OneIdentity/IdentityManager.Imx | Added by GitHub plugin-loader.service.ts OneIdentity/IdentityManager.Imx | Added by GitHub 6:10 And, of course, it's worth trying out the Angular Module Federation Plugin and learning about Module Federation in Webpack 5. It looks very promising for Virtual Desktop needs.