【问题标题】:ReferenceError: URL is not defined when trying to Run lighthouse reports on the command line in linuxReferenceError:尝试在 linux 的命令行上运行灯塔报告时未定义 URL
【发布时间】:2019-11-16 17:27:24
【问题描述】:

我已经安装了 chrome、LTS 版本的 Node 和 lighthouse,但是当我尝试运行审核时收到以下错误:

/usr/local/lib/node_modules/lighthouse/lighthouse-core/lib/url-shim.js:36
class URLShim extends URL {
                      ^

ReferenceError: URL is not defined
    at Object.<anonymous> (/usr/local/lib/node_modules/lighthouse/lighthouse-core/lib/url-shim.js:36:23)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/lighthouse/lighthouse-core/lib/network-request.js:14:13)
    at Module._compile (module.js:652:30)

安装完所有需要的东西后,我尝试测试它并得到上述错误。

灯塔https://www.bbc.co.uk

据我了解,您可以在命令行上键入 lighthouse,然后输入您要对其进行审核的网站的网址。但我不断得到:

ReferenceError: URL 未定义。

我是不是做错了什么。请帮忙。

【问题讨论】:

  • 你为什么不用chrome浏览器的灯塔?有可能下载审计报告。

标签: node.js lighthouse


【解决方案1】:

我遇到了同样的问题。您的节点版本已过时。 运行node --version检查它

如果小于 10,那么你就找到了问题。

https://nodejs.org/api/globals.html#globals_url

更新节点:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

然后再次检查您的节点版本:

node --version

您也可以选择使用 sudo n latest 安装最新版本,但我建议使用 stable 版本。

【讨论】:

  • 嗨 justalazyprogrammer 感谢您的回复。我实际上已经解决了这个问题。我的 linux 系统预装了版本 8,删除它并安装了版本 10。我现在可以从命令行运行 lighthouse。干杯。
  • 嘿!感谢您的回复。实际上,我在回复和现在之间得到了一台新笔记本电脑,所以我重新安装了节点。无论出于何种原因,默认情况下都会安装 8。不知道这是从哪里来的(如果有人知道为什么让我知道)
  • 嘿,我也有同样的问题。我已将命令放入 bash 脚本中。当我运行脚本时,一切都很顺利。当我将它作为 cron 作业运行时,我得到了错误。真奇怪。有任何想法吗?节点 --version v12.18.3
  • 我认为您的 crontab 使用的是不同的环境。看看这个线程stackoverflow.com/questions/2135478/…
猜你喜欢
  • 1970-01-01
  • 2021-11-09
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-15
相关资源
最近更新 更多