- Relocate webpack stuff to assets/build
- Switch all js to airbnb code style
- Update webpack to v2.0 (beta)
- Update all other dependencies
- Assets manifest uses relative path as key [1]
- Code should be compatible with Node 4.5.0
- All dependencies have been updated
[1]: Previously the assets manifest would use the basename of a file path as
its key when looking up a cachebusted file. This was to be consistent with
Sage 8. This change makes it so that the relative path is used instead.
To clarify, review the following example.
Before:
```
{
"main.js": "scripts/main_5f4bfc9a9f82291c6dea.js",
"main.css": "styles/main_5f4bfc9a9f82291c6dea.css",
"customizer.js": "scripts/customizer_5f4bfc9a9f82291c6dea.js"
}
```
After:
```
{
"scripts/main.js":"scripts/main_5f4bfc9a9f82291c6dea.js",
"styles/main.css":"styles/main_5f4bfc9a9f82291c6dea.css",
"scripts/customizer.js":"scripts/customizer_5f4bfc9a9f82291c6dea.js"
}
```
38 lines
748 B
PHP
38 lines
748 B
PHP
<?php namespace Roots\Sage;
|
|
|
|
use Roots\Sage\Assets\ManifestInterface;
|
|
|
|
/**
|
|
* Class Template
|
|
* @package Roots\Sage
|
|
* @author QWp6t
|
|
*/
|
|
class Asset
|
|
{
|
|
public static $dist = '/dist';
|
|
|
|
/** @var ManifestInterface Currently used manifest */
|
|
protected $manifest;
|
|
|
|
protected $asset;
|
|
|
|
protected $dir;
|
|
|
|
public function __construct($file, ManifestInterface $manifest = null)
|
|
{
|
|
$this->manifest = $manifest;
|
|
$this->asset = $file;
|
|
}
|
|
|
|
public function __toString()
|
|
{
|
|
return $this->getUri();
|
|
}
|
|
|
|
public function getUri()
|
|
{
|
|
$file = ($this->manifest ? $this->manifest->get($this->asset) : $this->asset);
|
|
return get_template_directory_uri() . self::$dist . "/$file";
|
|
}
|
|
}
|