66 lines
1.6 KiB
PHP
66 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Laravel\Ui\Presets;
|
|
|
|
use Illuminate\Filesystem\Filesystem;
|
|
|
|
class Preset
|
|
{
|
|
/**
|
|
* Ensure the component directories we need exist.
|
|
*
|
|
* @return void
|
|
*/
|
|
protected static function ensureComponentDirectoryExists()
|
|
{
|
|
$filesystem = new Filesystem;
|
|
|
|
if (! $filesystem->isDirectory($directory = resource_path('js/components'))) {
|
|
$filesystem->makeDirectory($directory, 0755, true);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Update the "package.json" file.
|
|
*
|
|
* @param bool $dev
|
|
* @return void
|
|
*/
|
|
protected static function updatePackages($dev = true)
|
|
{
|
|
if (! file_exists(base_path('package.json'))) {
|
|
return;
|
|
}
|
|
|
|
$configurationKey = $dev ? 'devDependencies' : 'dependencies';
|
|
|
|
$packages = json_decode(file_get_contents(base_path('package.json')), true);
|
|
|
|
$packages[$configurationKey] = static::updatePackageArray(
|
|
array_key_exists($configurationKey, $packages) ? $packages[$configurationKey] : [],
|
|
$configurationKey
|
|
);
|
|
|
|
ksort($packages[$configurationKey]);
|
|
|
|
file_put_contents(
|
|
base_path('package.json'),
|
|
json_encode($packages, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT).PHP_EOL
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Remove the installed Node modules.
|
|
*
|
|
* @return void
|
|
*/
|
|
protected static function removeNodeModules()
|
|
{
|
|
tap(new Filesystem, function ($files) {
|
|
$files->deleteDirectory(base_path('node_modules'));
|
|
|
|
$files->delete(base_path('yarn.lock'));
|
|
});
|
|
}
|
|
}
|