Resolve liferay-amd-loader errors for themes with React components
Written By
Tony Ng
How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!
While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.
Legacy Article
You are viewing an article from our legacy "FastTrack"
publication program, made available for informational purposes. Articles
in this program were published without a requirement for independent
editing or verification and are provided"as is" without
guarantee.
Before using any information from this article, independently verify its
suitability for your situation and project.
Issue
liferay-amd-loader errors for themes containing React components can be seen in the browser console:
liferay-amd-loader | Errors returned from server for require( ['test-theme/js/controllers/test_controller.es'] ): ["Missing required module 'test-theme/js/controllers/test_controller.es'"]
Starting from DXP 7.2, addModule was removed from liferay-amd-loader, which prevents JavaScript files within the theme from being processed.
Environment
DXP 7.2
DXP 7.3
Resolution
Build a shared bundle with the JS Toolkit that holds all JavaScript files associated with the theme.
Consume this bundle from the .ftl templates invoking Liferay.Loader.require(), after all JavaScript files are moved from the theme to the generated React Widget, for instance:
This website uses cookies and similar tools, some of which are provided by third parties (together “tools”). These tools enable us and the third parties to access and record certain user-related and activity data and to track your interactions with this website. These tools and the informationcollected are used to operate and secure this website, enhance performance, enable certain website features and functionality, analyze and improve website performance, and personalize user experience.
If you click “Accept All”, you allow the deployment of all these tools and collection of the information by us and the third parties for all these purposes.
If you click “Decline All” your IP address and other information may still be collected but only by tools (including third party tools) that are necessary to operate, secure and enable default website features and functionalities. Review and change your preferences by clicking the “Configurations” at any time.