Ошибка получения CLI Lighthouse - неверный URL при использовании командного файла для запроса

У меня есть пакетный файл, который:

@echo off
for /f "delims=" %%a in (C:\Users\yarrytroshchey\Lighthouse\Demo\urls.txt) 
DO (
ECHO Line is: %%a
lighthouse -output html –quiet –chrome-flags="–headless" %%a
) 

и файл urls.txt, который:

https://www.bbc.co.uk
https://www.bbc.co.uk/sport
https://www.bbc.co.uk/sport/formula-1

Я пытаюсь запустить пакетный аудит через Google Lighthouse по URL-адресам, указанным в txt-файле, и у меня возникает ошибка -

Обнаружена ошибка времени выполнения: lighthouse-core/lib/lh-error.js | urlInvalid # 0 LHError: INVALID_URL в маяке (C:\Users\yarrytroshchey\AppData\Roaming\npm\node_modules\lighthouse\lighthouse-core\index.js:44:11) в chromeP.then._ (C:\Users\yarrytroshchey\AppData\Roaming\npm\node_modules\lighthouse\lighthouse-cli\run.js:191:12) в process._tickCallback (внутренний /process/next_tick.js:68:7)

Я пытался изменить URL-адреса, но не удалось.

Он должен просто пропустить каждый URL через маяк и вывести отчет в формате HTML в той же папке.

1 ответ

Решение

Вы пытались использовать -- вместо или же - и пока вы это делаете, поместите опции после, предпочтительно в двойных кавычках, метавариабельной переменной:

@For /F "UseBackQ Delims=" %%A In ("C:\Users\yarrytroshchey\Lighthouse\Demo\urls.txt"
) Do @LightHouse "%%A" --quiet --chrome-flags="--headless"

Я пропустил --output вариант как то ненужный, т.к. html по умолчанию

У меня была такая же проблема с использованием сценария bash в качестве точки входа для Docker. Я решил эту проблему, используя переменные среды при запуске докера и указав это в скрипте вместо прямого аргумента.

Например, файл entry-point.sh:

#!/usr/bin/env bash
set -Eeo pipefail

lighthouse --no-enable-error-reporting --chrome-flags="--headless --disable-gpu" $URL --output json html

После этого вам просто нужно передать URL-адрес переменной env с помощью "https://www....." при следующем запуске докера.

Другие вопросы по тегам