ESM Overview and FAQ

Hello developers,

We are excited to announce that the commercial launch of ESM for HOOPS version 2024.3.0 is on the horizon! We urge users to transition to this version as soon as possible. This upgrade aligns with modern development best practices and enhances maintainability, dependency management, and compatibility with the latest JavaScript environments. Leveraging ESM enables the creation of single-page applications, facilitating the development of more dynamic, responsive, and effective web applications with an exceptional user experience.

The 2024.2.0 HOOPS Communicator documentation has been updated to reflect the changes. Check out our Migration Guide if you’d like to migrate.

Frequently asked questions:

Will any of the previous versions be depreciated?

Yes, the following changes will be made:

  • Version 2024.4.0: The legacy IIFE version of the webViewer will be deprecated.
  • Version 2025.1.0: The legacy IIFE version will be removed.

What are the benefits of migrating?

  1. Improved Maintainability: ESM provides a standardized way of organizing and importing/exporting modules, making the codebase more organized and easier to maintain. With ESM, you can clearly define dependencies between modules and manage them using import/export statements. This leads to cleaner and more modular code, reducing the chances of errors and making it easier for developers to understand and work with the codebase.
  2. Better Compatibility: As ESM is part of the ECMAScript standard, it is supported natively in modern JavaScript environments, including browsers and Node.js. By migrating to ESM, you ensure better compatibility with the latest JavaScript features and tools. Additionally, ESM allows for static analysis of imports, which can help optimize the bundle size and improve performance.
  3. Enhanced Dependency Management: ESM provides a more flexible and powerful mechanism for managing dependencies than IIFE. With ESM, you can easily import modules from external sources, such as npm packages, without additional bundling tools. This simplifies the development workflow and reduces the complexity of the build process. Additionally, ESM supports dynamic imports, allowing you to load modules asynchronously when needed, which can improve the performance of your application by reducing initial load times.