Optimize command unable to locate vendor views, View:Cache
Laravel Version
12.14.0
PHP Version
8.4.7
Database Driver & Version
MySQL
Description
As per the discussion in #50619 - when running the php artisan optimize command during deployment in forge, it is unable to find a cache some vendor views that are used in the main app. In this instance, I am using the heroicons that are a part of the blade-kit-ui that come as a dep of filament.
As per the directions in the last issue about this (50619) I removed optimize command and replaced it with the standalone cache commands and it works fine.
It seems to be related to the $this->callAfterResolving call in the Blade Hero Icons package, but I don't have enough time at the moment to look into why it working with caching the views, but not the optimise command.
Steps To Reproduce
The following is a minimal reproduction:
- Create a laravel new application
- Install filament
- Use one of the blade heroicons in an blade view in your main apps resources
- Add
php artisan optimizeto your deployment script - Deployment will fail stating unable to locate class or view component
I believe that package has a separate artisan icons:cache command, which is not included when running the optimize command
we have like this error that only happens in production
The issue involves laravel-exceptions-renderer::icons.sun which is a built-in Laravel core icon used for error pages.
https://github.com/laravel/framework/blob/12.x/src/Illuminate/Foundation/resources/exceptions/renderer/components/icons/sun.blade.php
@calebdw even after running icons:cache before executing view:cache, the issue persists.
Hey there, thanks for reporting this issue.
We'll need more info and/or code to debug this further. Can you please create a repository with the command below, commit the code that reproduces the issue as one separate commit on the main/master branch and share the repository here?
Please make sure that you have the latest version of the Laravel installer in order to run this command. Please also make sure you have both Git & the GitHub CLI tool properly set up.
laravel new bug-report --github="--public"
Do not amend and create a separate commit with your custom changes. After you've posted the repository, we'll try to reproduce the issue.
Thanks!
I found a workaround that allows running php artsian optimize to work.
I ended up writing a command to override the default order of the commands.
<?php
namespace App\Console\Commands;
use Illuminate\Foundation\Console\OptimizeCommand;
class Optimize extends OptimizeCommand
{
/**
* Get the commands that should be run to optimize the framework.
*
* @return array
*/
protected function getOptimizeTasks()
{
$commands = parent::getOptimizeTasks();
$commands = ['views' => $commands['views']] + $commands;
return $commands;
}
}
Would like to know why the order is making a difference here.
Hey there,
We're closing this issue because it's inactive, already solved, old, or not relevant anymore. Feel free to open up a new issue if you're still experiencing this problem.