首页 > 解决方案 > ReferenceError:尝试在 linux 的命令行上运行灯塔报告时未定义 URL

问题描述

我已经安装了 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,然后输入您尝试对其进行审核的站点的 url。但我不断得到:

ReferenceError:未定义 URL。

难道我做错了什么。请帮忙。

标签: node.jslighthouse

解决方案


我遇到过同样的问题。您的节点版本已过时。通过运行检查它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 版本。


推荐阅读