| 1 |
# Jetpack Asset Management |
| 2 |
|
| 3 |
A package containing functionality to improve loading of assets (scripts, etc). |
| 4 |
|
| 5 |
Includes manipulation of paths, enqueuing async scripts, and DNS resource hinting. |
| 6 |
|
| 7 |
## Usage |
| 8 |
|
| 9 |
* `::get_file_url_for_environment( $min_path, $non_min_path, $package_path )` -- This is similar to `plugins_url()`, but chooses between `$min_path` and `$non_min_path` based on the constant `SCRIPT_DEBUG`. |
| 10 |
The filter `jetpack_get_file_for_environment` may be used to control the returned URL. |
| 11 |
* `::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. |
| 12 |
* `::normalize_path( $path )` -- Normalize `.` and `..` components in a path or URL. |
| 13 |
* `::register_script( $handle, $path, $relative_to, $options )` -- Register a Webpack bundled script and styles using data produced by `@wordpress/dependency-extraction-webpack-plugin`. |
| 14 |
This replaces reading the `.asset.php` file and then making calls to `wp_register_script()`, `wp_register_style()` (with a potentially varying filename based on `is_rtl()`), and `wp_set_script_translations()`. See the inline documentation for details. |
| 15 |
* `::enqueue_script( $handle )` -- Enqueue a script and style previously registered with `::register_script()`. |
| 16 |
* `::alias_textdomains_from_file( $file )` -- Use data recorded by [](https://packagist.org/packages/automattic/jetpack-composer-pluginautomattic/jetpack-composer-plugin](https://packagist.org/packages/automattic/jetpack-composer-plugin](https://packagist.org/packages/automattic/jetpack-composer-plugin) to enable use of translations for shared Composer libraries. |
| 17 |
* `::alias_textdomains( $from, $to, $totype, $ver )` -- Manually add a textdomain alias, if for some reason `::alias_textdomains_from_file()` is insufficient. |
| 18 |
|
| 19 |
The Assets package also provides a `wp-jp-i18n-loader` script to support Webpack lazy-loaded bundles using [](https://www.npmjs.com/package/@automattic/i18n-loader-webpack-plugin@automattic/i18n-loader-webpack-plugin](https://www.npmjs.com/package/@automattic/i18n-loader-webpack-plugin](https://www.npmjs.com/package/@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. |
| 20 |
|
| 21 |
## Testing |
| 22 |
|
| 23 |
```bash |
| 24 |
$ composer run phpunit |
| 25 |
``` |
| 26 |
## Using this package in your WordPress plugin |
| 27 |
|
| 28 |
If you plan on using this package in your WordPress plugin, we would recommend that you use [](https://packagist.org/packages/automattic/jetpack-autoloaderJetpack Autoloader](https://packagist.org/packages/automattic/jetpack-autoloader](https://packagist.org/packages/automattic/jetpack-autoloader) as your autoloader. This will allow for maximum interoperability with other plugins that use this package as well. |
| 29 |
|
| 30 |
## Security |
| 31 |
|
| 32 |
Need to report a security vulnerability? Go to [](https://automattic.com/security/https://automattic.com/security/](https://automattic.com/security/](https://automattic.com/security/) or directly to our security bug bounty site [](https://hackerone.com/automattichttps://hackerone.com/automattic](https://hackerone.com/automattic](https://hackerone.com/automattic). |
| 33 |
|
| 34 |
## License |
| 35 |
|
| 36 |
jetpack-assets is licensed under [](./LICENSE.txtGNU General Public License v2 (or later)](./LICENSE.txt](./LICENSE.txt) |
| 37 |
|
| 38 |
|