Magento 2 - Anzeigen von Bereitstellungsfehlern für statische Inhalte

7

Beim Ausführen php bin/magento setup:static-content:deploysind einige Fehler in meinem Thema aufgetreten. Ich bin ihnen auf den Grund gegangen, aber es war ein Schmerz, ich musste alle meine WENIGER Dateien manuell durchgehen, um nach Fehlern zu suchen.

Der Schuldige war ein Import, dem ein Unterstrich fehlte.

Ich habe es überprüft var/log/debug.logund var/log/support_report.logaber diese scheinen keine WENIGER Fehler zu protokollieren. Die clientseitige Kompilierung funktioniert auch nicht. Dies hat nur eine 404 für styles-l.css und styles-m.css zurückgegeben, da die Bereitstellung fehlgeschlagen sein muss, bevor sie diese Dateien erreicht hat.

TL: DR

Meine Frage ist nun, ob die statischen Inhaltsbereitstellungsfehler irgendwo protokolliert werden. Es wäre viel einfacher gewesen, wenn es ein Protokoll nach dem Vorbild von gegeben hätte x.less can not be imported.

Dies ist Magento 2.0.4 mit einem benutzerdefinierten Thema, das Luma als übergeordnetes Element verwendet.

Beispiel für meinen Fehler:

=== frontend -> ThemeName/default -> en_GB ===
...
Successful: 2248 files; errors: 1
---
Ben Crook
quelle

Antworten:

9

Ich gehe davon aus, dass es verschiedene Arten von Fehlern gibt, die durch die Bereitstellung ausgelöst werden können.

Zuerst können Sie sehen, dass Ausnahmen direkt in der Ausführung behandelt werden in Magento/Deploy/Console/Command/DeployStaticContentCommand.php:

    catch (\Exception $e) {
        $output->writeln('<error>' . $e->getMessage() . '</error>>');
        if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERBOSE) {
            $output->writeln($e->getTraceAsString());
        }
        return;
    }

In Bezug auf die Fehler, die gezählt werden, handelt es sich um ein völlig anderes System. Sie müssen sich die Magento/Deploy/Model/DeployerKlasse ansehen . Die Ausgabe, die Sie erhalten haben, wird mit der folgenden deploy()Methode geschrieben:

$this->output->writeln("\nSuccessful: {$this->count} files; errors: {$this->errorCount}\n---\n");

Wenn wir nun überprüfen, wann diese errorCountVariable inkrementiert wird, finden wir Folgendes in der deployFile()Methode:

    catch (\Exception $exception) {
        $this->output->write('.');
        $this->verboseLog($exception->getTraceAsString());
        $this->errorCount++;
    }

Und wie Sie vielleicht bereits vermutet haben, wird die verboseLog()Methode nur ausgegeben, wenn der Befehl im ausführlichen Modus ausgeführt wird:

private function verboseLog($message)
{
    if ($this->output->isVerbose()) {
        $this->output->writeln($message);
    }
}

Ich denke, Sie müssen Ihren Befehl so ausführen, um die Fehler zu sehen:

php bin/magento setup:static-content:deploy -v

Wenn es nicht funktioniert, versuchen Sie die zusätzlichen Ausführungen:

php bin/magento setup:static-content:deploy -vv
php bin/magento setup:static-content:deploy -vvv
Raphael beim digitalen Pianismus
quelle
Vielen Dank. Es ist eine Schande, dass die Fehlermeldungen mir als Front-End-Entwickler nicht helfen. Es scheint ein WENIGER Fehler zu sein, da CSS und Vorverarbeitung einige Male erwähnt werden. Ich hatte auf einen Fehler gehofft, der erwähnte, wo der Fehler auftrat. Dies macht die Antwortfrage jedoch so, dass ich als richtig markieren werde.
Ben Crook
@ Ben-Space48 zögern Sie nicht, ein Problem auf Github zu erstellen, um nach einer solchen Funktion zu fragen;)
Raphael bei Digital Pianism
Hat jemand genau bestimmt, wie viele -v benötigt werden?
Peedee
@peedee Sie haben bis zu 3. Je mehr v desto mehr Ausführlichkeit;)
Raphael bei Digital Pianism
2
Ja, ich habe es bemerkt. Folgendes passiert: Ein -v reicht aus, um die Stapelspur des Fehlers inmitten aller gedruckten Punkte zu erhalten. Wenn Sie 2 oder 3 Vs verwenden, werden keine Punkte mehr gedruckt, sondern der Name jeder einzelnen verarbeiteten Datei, was es schwierig macht, die Stapelspur zu finden. Daher empfehle ich nur eine v. Die Ausführlichkeit des Stacktraces selbst nimmt nicht mit mehr v zu.
Peedee
3

Sie können häufig Fehler in Ihrem weniger sehen, indem Sie die CSS-Datei anzeigen, die in Ihrer Entwicklungsumgebung generiert wird. Dies beantwortet die Frage nicht ganz, wird aber hoffentlich jemandem helfen.

Hob Adams
quelle