[wp-trac] [WordPress Trac] #64229: Enqueueing scripts and script modules should warn when dependencies are missing

WordPress Trac noreply at wordpress.org
Tue Nov 11 04:07:29 UTC 2025


#64229: Enqueueing scripts and script modules should warn when dependencies are
missing
---------------------------+-------------------------
 Reporter:  westonruter    |      Owner:  (none)
     Type:  enhancement    |     Status:  new
 Priority:  normal         |  Milestone:  7.0
Component:  Script Loader  |    Version:  trunk
 Severity:  normal         |   Keywords:  needs-patch
  Focuses:  javascript     |
---------------------------+-------------------------
 Given the following plugin code:

 {{{#!php
 <?php
 /**
  * Plugin Name: Try in enqueuing classic script and script module with
 missing dependencies
  */

 namespace TryEnqueueingScriptsWithMissingDependencies;

 add_action(
         'wp_enqueue_scripts',
         static function () {
                 wp_enqueue_script( 'classic-script-with-missing-
 dependency', 'https://example.com/classic-script.js', array( 'classic-
 dependency' ) );
                 wp_enqueue_script_module( 'script-module-with-missing-
 dependency', 'https://example.com/script-module.js', array( 'module-
 dependency' ) );
         }
 );
 }}}

 In WordPress 6.8, the classic script is ''not'' printed but the script
 module ''is''. However, as of WordPress 6.9, script modules now behave the
 same as classic scripts when they have missing dependencies: the script
 module is not printed. This change was introduced in r60999 to fix #63486.
 See [https://github.com/WordPress/wordpress-
 develop/blob/328ab83beb153ffa6d5378b26bb4ef2ceee49c47/src/wp-includes
 /class-wp-script-modules.php#L724-L727 code in question].

 As was extensively
 [https://wordpress.slack.com/archives/C071CRKGKUP/p1762356664084569
 troubleshooted] in the #core-interactivity-api channel in Slack, this
 change in behavior was difficult to debug, and it was difficult to
 identify why a script was not being printed.

 Query Monitor actually helpfully warns when attempting to enqueue a
 classic script script that is missing dependencies, but it doesn't
 currently do the same for script modules. This may be due to #60597, where
 `WP_Script_Modules` lacks the necessary accessors.

 In any case, WordPress core should itself issue a `_doing_it_wrong()` for
 both classic scripts and script modules whenever there is a missing
 dependency for an enqueued script.

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/64229>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list