Jetpack Asset Management
A package containing functionality to improve loading of assets (scripts, etc).
Includes manipulation of paths, enqueuing async scripts, and DNS resource hinting.
Usage
-
::get_file_url_for_environment( $min_path, $non_min_path, $package_path )-- This is similar toplugins_url(), but chooses between$min_pathand$non_min_pathbased on the constantSCRIPT_DEBUG. The filterjetpack_get_file_for_environmentmay be used to control the returned URL. -
::add_resource_hint( $urls, $type )-- Adds domains (string or array) to the WordPress' resource hinting. Accepts type of dns-prefetch (default), preconnect, prefetch, or prerender. -
::normalize_path( $path )-- Normalize.and..components in a path or URL. -
::register_script( $handle, $path, $relative_to, $options )-- Register a Webpack bundled script and styles using data produced by@wordpress/dependency-extraction-webpack-plugin. This replaces reading the.asset.phpfile and then making calls towp_register_script(),wp_register_style()(with a potentially varying filename based onis_rtl()), andwp_set_script_translations(). See the inline documentation for details. -
::enqueue_script( $handle )-- Enqueue a script and style previously registered with::register_script(). -
::alias_textdomains_from_file( $file )-- Use data recorded by automattic/jetpack-composer-plugin to enable use of translations for shared Composer libraries. -
::alias_textdomains( $from, $to, $totype, $ver )-- Manually add a textdomain alias, if for some reason::alias_textdomains_from_file()is insufficient.
The Assets package also provides a wp-jp-i18n-loader script to support Webpack lazy-loaded bundles using @automattic/i18n-loader-webpack-plugin. No initialization is required, other than calling ::alias_textdomains_from_file() or ::alias_textdomains() if said bundles are coming from shared Composer libraries.
Testing
$ composer run phpunit