Title: &#8220;Defer JavaScript&#8221; feature breaks inline script modules
Last modified: March 31, 2025

---

# “Defer JavaScript” feature breaks inline script modules

 *  Resolved [Weston Ruter](https://wordpress.org/support/users/westonruter/)
 * (@westonruter)
 * [1 year, 2 months ago](https://wordpress.org/support/topic/defer-javascript-breaks-inline-script-modules/)
 * As [reported](https://wordpress.org/support/topic/browser-errors-were-logged-to-the-console-16/)
   in a support forum topic for the Optimization Detective plugin, the Defer JavaScript
   feature of WP Fastest Cache is causing a JS error for inline script modules.
 * The Optimization Detective plugin outputs an inline script module to the page,
   for example:
 *     ```wp-block-code
       <script type="module">import detect from "https:\/\/telikertepites.net\/wp-content\/plugins\/optimization-detective\/detect.min.js?ver=1.0.0-beta3"; detect( {"minViewportAspectRatio":0.4,"maxViewportAspectRatio":2.5,"isDebug":false,"extensionModuleUrls":["https:\/\/telikertepites.net\/wp-content\/plugins\/image-prioritizer\/detect.min.js?ver=1.0.0-beta2"],"restApiEndpoint":"https:\/\/telikertepites.net\/wp-json\/optimization-detective\/v1\/url-metrics:store","currentETag":"50f3cdd79cfc777a742f88f0a0d3e7e6","currentUrl":"https:\/\/telikertepites.net\/","urlMetricSlug":"d751713988987e9331980363e24189ce","cachePurgePostId":1964,"urlMetricHMAC":"96dd7a66043c749f3122b2e8f113050a","urlMetricGroupStatuses":[{"minimumViewportWidth":0,"maximumViewportWidth":480,"complete":true},{"minimumViewportWidth":480,"maximumViewportWidth":600,"complete":false},{"minimumViewportWidth":600,"maximumViewportWidth":782,"complete":false},{"minimumViewportWidth":782,"maximumViewportWidth":null,"complete":true}],"storageLockTTL":60,"freshnessTTL":604800,"webVitalsLibrarySrc":"https:\/\/telikertepites.net\/wp-content\/plugins\/optimization-detective\/build\/web-vitals.js?ver=4.2.4"});</script>
       ```
   
 * However, the Defer JavaScript feature of your plugin is wrapping the contents
   of this script in a `DOMContentLoaded` event listener:
 *     ```wp-block-code
       <script type="module">document.addEventListener('DOMContentLoaded',function(){import detect from "https:\/\/telikertepites.net\/wp-content\/plugins\/optimization-detective\/detect.min.js?ver=1.0.0-beta3"; detect( {"minViewportAspectRatio":0.4,"maxViewportAspectRatio":2.5,"isDebug":false,"extensionModuleUrls":["https:\/\/telikertepites.net\/wp-content\/plugins\/image-prioritizer\/detect.min.js?ver=1.0.0-beta2"],"restApiEndpoint":"https:\/\/telikertepites.net\/wp-json\/optimization-detective\/v1\/url-metrics:store","currentETag":"50f3cdd79cfc777a742f88f0a0d3e7e6","currentUrl":"https:\/\/telikertepites.net\/","urlMetricSlug":"d751713988987e9331980363e24189ce","cachePurgePostId":1964,"urlMetricHMAC":"96dd7a66043c749f3122b2e8f113050a","urlMetricGroupStatuses":[{"minimumViewportWidth":0,"maximumViewportWidth":480,"complete":true},{"minimumViewportWidth":480,"maximumViewportWidth":600,"complete":false},{"minimumViewportWidth":600,"maximumViewportWidth":782,"complete":false},{"minimumViewportWidth":782,"maximumViewportWidth":null,"complete":true}],"storageLockTTL":60,"freshnessTTL":604800,"webVitalsLibrarySrc":"https:\/\/telikertepites.net\/wp-content\/plugins\/optimization-detective\/build\/web-vitals.js?ver=4.2.4"});});</script>
       ```
   
 * This causes a JavaScript error to be reported to the console:
 * > SyntaxError: Unexpected identifier ‘detect’
 * This is because `import` statement is only allowed at the root of a script module,
   and not inside of a function.
 * I recommend that you update your Defer JavaScript feature to not do anything 
   when an inline script’s `type` is `module` because module scripts already are
   deferred to execute after the DOM has loaded by default.
    -  This topic was modified 1 year, 2 months ago by [Weston Ruter](https://wordpress.org/support/users/westonruter/).

Viewing 1 replies (of 1 total)

 *  Plugin Author [Emre Vona](https://wordpress.org/support/users/emrevona/)
 * (@emrevona)
 * [1 year, 2 months ago](https://wordpress.org/support/topic/defer-javascript-breaks-inline-script-modules/#post-18392534)
 * To create threads about the premium version on wordpress.org forum is forbidden
   so please contact us via email about the problem which is related to the premium
   version.
 * [https://www.wpfastestcache.com/contact-us/](https://www.wpfastestcache.com/contact-us/)

Viewing 1 replies (of 1 total)

The topic ‘“Defer JavaScript” feature breaks inline script modules’ is closed to
new replies.

 * ![](https://ps.w.org/wp-fastest-cache/assets/icon-256x256.png?rev=2064586)
 * [WP Fastest Cache - WordPress Cache Plugin](https://wordpress.org/plugins/wp-fastest-cache/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/wp-fastest-cache/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/wp-fastest-cache/)
 * [Active Topics](https://wordpress.org/support/plugin/wp-fastest-cache/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/wp-fastest-cache/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/wp-fastest-cache/reviews/)

 * 1 reply
 * 2 participants
 * Last reply from: [Emre Vona](https://wordpress.org/support/users/emrevona/)
 * Last activity: [1 year, 2 months ago](https://wordpress.org/support/topic/defer-javascript-breaks-inline-script-modules/#post-18392534)
 * Status: resolved