获取Lighthouse CLI错误-使用批处理文件请求时URL无效

时间:2019-01-24 14:01:06

标签: javascript batch-file lighthouse

我有一个批处理文件,它是:

@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

我正在尝试通过txt文件中列出的URL通过Google Lighthouse进行批量审核,但遇到错误-

遇到运行时错误: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(internal / process / next_tick.js:68:7)

我尝试过修改URL,但是没有成功。

它应该简单地通过灯塔运行每个URL,并在同一文件夹中输出HTML报告。

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用--而不是-,并且在使用时,将选项放在最好用双引号后的元变量之后:

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

由于没有必要,我错过了--output选项,因为因为html是默认

答案 1 :(得分:0)

使用bash脚本作为Docker的入口点时,我遇到了同样的问题。我确实在docker run上使用环境变量并在脚本中将其指向而不是直接参数来解决此问题。

例如,entry-point.sh文件:

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

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

在适当的位置,您只需要在下一次docker运行中使用“ https:// www .....”提供env变量URL。