Hey everyone,
We have some exciting news to share about the improvements we've been making to our OutSystems Applications. As part of our ongoing efforts to enhance performance and maintainability, we're optimizing how JavaScript code is deployed in ODC applications, including the embedding of third-party JavaScript. To achieve this, we will be progressively rolling out the removal of RequireJS and the introduction of a JavaScript bundler by October 21st.
The change involves these key decisions:
How Can You Make This Transition Smoothly
We understand that any change in the underlying technology can raise questions and concerns, especially when breaking changes are being introduced. We did extensive testing to make sure you have the least impact possible on your web and mobile apps. Here's how you can understand the possible impacts and ensure a smooth experience.
Fix any Strict Mode violations in JS Nodes
With the move to ESM, code running in JS Nodes now runs in strict mode. This means that the semantics of some JavaScript features will change, and you may need to adapt to that. Adhering to strict mode will provide better security, safety, and performance in your JavaScript code, so making this change in your applications should have a positive impact. You can learn more in the official documentation.
Example of incompatible code will result in an error while publishing
Update Forge Dependencies
Below you can find a list of all forge assets that have been updated to meet the requirements described above. Please make sure you update the following Forge components to the minimum version stated below:
Library/Plugin
Required Version
CommonPlugin
1.0.1
FileTransferPlugin
OneSignal
1.1.0
AppShield
0.4.1
UltimatePDF
1.1.8
SEO Utils on Steroids
0.2.0
Dropable File Upload
0.1.5
CKEditor 5
Built-in Plugins impacts
This transition required some changes to the OS DeepLinks. These changes have no impact on the available APIs, but do require a new mobile package version. To migrate, follow the steps below:
Create new mobile package versions
Updating the Mobile Plugins requires a new mobile application package, just follow the steps:
Thank you for your continued support and trust in our product.
Best regards.
Great news
Thanks for sharing !
Noice!
Great news!
Will this only apply to ODC and not OS11? Will the CSS be bundled / minified too?
Hello Tiago,
These changes only apply to ODC, and the CSS files will not be impacted by it.
Thanks Rita!
It seemed to me as a change that could be done at the Reactive / Mobile apps compiler so that could potentially benefit both O11 and ODC with little to no additional effort (but of course I don't have the full context).
Please also consider bundling the CSS. It is an industry standard and the tool you are using, ESBuild, supports it out of the box. It has been suggested in the community multiple times since 2011.
Cheers
Great News.
Thanks for sharing!
Obrigado por compartilhar!
That is Great 😃
Thanks for the detailed information!
"Excellent, thanks for the information."
Excelent... Thanks for sharing.
Question... Any plans to implement this for O11 too?
I saw in previous comments that it is only planned for ODC.
Even though OS sales claim OS11 is their flagship product still, we can all see the writing on the wall for the product. So in saying that I would be pleasantly surprised if they do this also for OS11 but I am already prepared not to be surprised :D
Ótimo, obrigado pela informação!!
Thanks for the information !
Thanks for sharing with details !
Thanks for the information!
Thanks for sharing
Thanks for sharing !! very Helpful
Thanks for the insightful information.
Excelente!
Thanks for sharing...
That's very useful. Thanks for sharing
Thank you for sharing
Thank you for sharing!!
Thanks for sharing , very Helpful
Great news! Thanks for sharing.
Its a great news.
This change has impact so please try to share with community via emailer
nice and thanks for the information.
With the new JS bundler and the minification of JS, it is very difficult to debug JavaScript in the broswer Dev Tools. When I search for the piece of JS code that I wrote in ODC Studio, I can no longer find it in the browser, in order to put a breakpoint and debug. Is there any information on a workaround, or to only disable this minification on Development stages?
OutSystems could consider adding support for Source Maps. They help map minified code back to the original code for debugging. They are automatically generated by most bundlers, including ESBuild.
It would also be nice to have the bundler working for CSS files in addition to js files.
Great News, Thanks for sharing.