当前位置: 首页 > 知识库问答 >
问题:

NPM和NodeJS兼容性:NodeJS可以从PM提示符下工作,但不能从脚本上工作

羊舌源
2023-03-14

我正在尝试在节点中运行lighthouse脚本。JS(我是新手)。我按照最初的指示来这里https://github.com/GoogleChrome/lighthouse/blob/master/docs/readme.md#using-以编程方式。我能够在package manager控制台(Visual Studio 2017)中完成前面的步骤:

npm install -g lighthouse
lighthouse https://airhorner.com/
//and
lighthouse https://airhorner.com/ --output=json --output-path=./report/test1.json

然而,我确实得到了一个初始警告,NPM只支持节点。版本4到8中的JS,并推荐一个更新的版本。问题是我正在运行节点v12和NPM v5——都是最新的。

当我创建下面这样的脚本版本(app.js)时

const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');
const config = {
    extends: 'lighthouse:default',
    settings: {
        emulatedFormFactor: 'desktop',
        onlyCategories: 'performance',
        output: 'json',
        outputPath: './report.json'
    }
};

function launchChromeAndRunLighthouse(url, opts = null, config) {
    return chromeLauncher.launch().then(chrome => {
        opts.port = chrome.port;
        return lighthouse(url, opts, config).then(results => {
            return chrome.kill().then(() => results.lhr);
        });
    });
}

// Usage:
launchChromeAndRunLighthouse('https://airhorner.com/', config).then(results => {
    // Use results!
});

然后运行命令

C:\src\project> node app.js

我得到的错误-找不到模块'灯塔'

共有1个答案

纪翰
2023-03-14

不要在本地安装灯塔,在工作区内使用。首先运行将创建包的npminit。当前工作目录中的json文件
然后npm安装--save lighthouse将下载该文件并将其保存到node_模块现在您可以在工作目录中本地使用它

应该是这样的

  • 应用程序。js
  • 包裹。json
  • 节点单元/

然后运行节点应用程序。js

 类似资料:
  • 我必须得到我使用ffmpeg的视频缩略图。在我的服务器上,我从ssh运行ffmpeg命令,然后它运行正常,但从php exec函数它不运行,它给出错误/usr/bin/ffmpeg:没有这样的文件或目录,但ffmpeg安装在这个位置usr/bin/ffmpeg。我的源代码是: 请提供任何解决方案。

  • 代码: 知道是什么导致了这个问题吗。可能与VPC或安全组有关?并给出了思考和建议。谢了。

  • 问题内容: 只要我通过Linux终端(bash shell)使用它,我的anaconda(4.5.4)都可以正常工作。但是,在bash脚本中运行conda命令根本不起作用。 脚本test.sh包含以下几行: 现在,运行会导致错误 如推荐给anaconda版本> 4.4,我的.bashrc不包含 但 谢谢。 问题答案: 由于@darthbith的评论,我解决了这个问题。 由于是bash函数,并且ba

  • 正如你在下面看到的,我得到了矛盾的结果。感谢所有的帮助。 Firebase控制台查询 Firebase控制台查询结果 密码 代码日志

  • 我有一个在pi模型3B上运行的selenium脚本,当使用 /usr/bin/python /home/pi/main.py手动运行时,该脚本运行得很好,但是当使用crontab或LXDE-pi/autostart运行它时,它只是启动浏览器,不会继续做它应该做的事情。我试图使用日志库记录信息,但没有看到任何有用的东西。起初我认为这是因为selenium没有随sudo安装,但它在python随sud

  • 我试图从数组(子文档)中拉/删除值。 示例文档: 我已经从mongo取下了那份文件。我正在努力: 产出: 看来我已经有问题了。从拉取调用返回的数组应该是拉取后数组中剩下的内容。不确定为什么它没有从项目数组中拉出。这是否只支持通过ObjectId而不是用户定义的字段拉动? 我叫save: Mongoose将此记录为查询: 这显示了我的文档未被删除的原因。应删除的数组项的_id为: mongoose发