[wp-trac] [WordPress Trac] #65165: Script module dependencies may be unavailable on evaluation

WordPress Trac noreply at wordpress.org
Sat May 16 05:03:57 UTC 2026


#65165: Script module dependencies may be unavailable on evaluation
-------------------------------------------------+-------------------------
 Reporter:  jonsurrell                           |       Owner:
                                                 |  westonruter
     Type:  defect (bug)                         |      Status:  closed
 Priority:  high                                 |   Milestone:  7.0
Component:  Script Loader                        |     Version:  trunk
 Severity:  normal                               |  Resolution:  fixed
 Keywords:  has-patch has-unit-tests needs-dev-  |     Focuses:  javascript
  note                                           |
-------------------------------------------------+-------------------------
Changes (by westonruter):

 * status:  accepted => closed
 * resolution:   => fixed


Comment:

 In [changeset:"62368" 62368]:
 {{{
 #!CommitTicketReference repository="" revision="62368"
 Script Loader: Warn when classic scripts with module dependencies lack
 footer/defer.

 A classic script with `module_dependencies` may be evaluated before the
 script modules import map is printed if it loads blocking in the document
 head, causing a "Failed to resolve module specifier" error on dynamic
 imports.

 * Trigger `_doing_it_wrong()` from `_wp_scripts_add_args_data()` when a
 classic script provides `module_dependencies` without setting `in_footer`
 to `true` or using a `defer` loading `strategy`, and document this
 requirement in the `wp_register_script()` and `wp_enqueue_script()`
 docblocks.
 * Remove the `module_dependencies` arg from the `wp-codemirror` script
 registration in favor of passing the espree module URL directly through
 `wp_get_code_editor_settings()`. This avoids registering `espree` as a
 publicly-available script module when it is only ever used internally as a
 private implementation detail of the code editor.
 * Add a `console.warn()` in `wp.codeEditor.initialize()` when invoked
 before `DOMContentLoaded`, so developers are alerted if the function is
 called too early for the import map to have been parsed.
 * Add PHPStan types which were missing when `module_dependencies` were
 initially introduced.
 * Harden `WP_Scripts::add_data()` against non-string `strategy` values
 being passed to `sprintf()`.

 Developed in https://github.com/WordPress/wordpress-develop/pull/11788

 Follow-up to r61587.

 Props khokansardar, westonruter, jonsurrell, jorbin.
 See #61500, #64238.
 Fixes #65165.
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/65165#comment:19>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list