Magento 2-静的コンテンツの展開エラーを表示する方法


7

実行するphp bin/magento setup:static-content:deployと、テーマにエラーが発生しました。私はそれらの一番下に到達しましたが、それは苦痛でした、私はすべてのLESSファイルを手動で調べてエラーをチェックしなければなりませんでした。

犯人は、アンダースコアが欠けていた輸入品でした。

チェックvar/log/debug.logしたところvar/log/support_report.log、これらはLESSエラーをログに記録していないようです。クライアント側のコンパイルも行われません。これらのファイルに到達する前にデプロイメントが失敗している必要があるため、styles-l.cssおよびstyles-m.cssに対して404を返しました。

TL:DR

今私の質問は、静的コンテンツの展開エラーがどこかに記録されているのですか?の線に沿って丸太があれば、はるかに簡単だったでしょうx.less can not be imported

これは、Lumaを親として使用するカスタムテーマを持つMagento 2.0.4です。

私のエラーの例:

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

回答:


9

展開によって引き起こされる可能性のあるエラーにはいくつかの種類があると思います。

最初に、実行時に例外が直接処理されることがわかります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;
    }

カウントされるエラーは完全に異なるシステムであり、Magento/Deploy/Model/Deployerクラスを調べる必要があります。取得した出力はdeploy()メソッドによって書き込まれます。

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

このerrorCount変数がインクリメントされるタイミングを確認すると、deployFile()メソッドで次のことがわかります。

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

そして、すでにお気づきかもしれませんが、verboseLog()メソッドはコマンドが冗長モードで実行されたときにのみ出力します。

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

したがって、エラーを表示するには、次のようにコマンドを実行する必要があると思います。

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

それが機能しない場合は、追加の詳細を試してください。

php bin/magento setup:static-content:deploy -vv
php bin/magento setup:static-content:deploy -vvv

ありがとうございました。エラーメッセージがフロントエンド開発者として私に役立たないのは残念です。CSSと前処理が何度か言及されているので、それはLESSエラーのようです。エラーが発生した場所に言及したエラーを期待していました。これは答えの質問をしますので、正しいとマークします。
Ben Crook

@ Ben-Space48は、そのような機能を要求するためにgithubで問題を作成してください;)
Raphael at Digital Pianism

それで、誰かが必要な-vの数を正確に決定しましたか?
peedee 2016

@peedeeには最大3があります。vが多ければ多いほど、詳細度が高くなります;)
デジタルピアニズムのラファエル、

2
はい、気づきました。ここに何が起こるかです。1つの-vで、印刷されたすべてのドットの中でエラーのスタックトレースを取得できます。2つまたは3つのvを使用すると、ドットは出力されなくなり、代わりに処理されたすべてのファイルの名前が出力されるため、スタックトレースを見つけることが難しくなります。したがって、私は一つだけVをお勧めしますスタックトレース自体の冗長性がよりVと増加しません。。
peedee

3

多くの場合、開発環境で生成されたcssファイルを表示することで、少ないエラーを確認できます。これは質問に完全に答えるものではありませんが、うまくいけば誰かに役立つでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.