Совместимость с NPM и NodeJS: NodeJS работает из приглашения PM, но не из сценария - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь запустить скрипт маяка в Node.JS (для которого я новичок). Я следовал начальным инструкциям здесь https://github.com/GoogleChrome/lighthouse/blob/master/docs/readme.md#using-programmatically. Мне удалось выполнить предыдущие шаги в консоли диспетчера пакетов (Visual Studio 2017):

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

Однако я получаю первоначальное предупреждение о том, что NPMподдерживает только Node.JS в версиях с 4 по 8 и рекомендует более новую версию. Проблема в том, что я использую Node 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 Ответ

1 голос
/ 28 октября 2019

не устанавливайте маяк локально, используйте его внутри рабочего каталога. сначала запустите npm init, который создаст файл package.json внутри текущего рабочего каталога
, затем npm install --save lighthouse загрузит его и сохранит его в node_modules, теперь вы можете использовать его локально внутри рабочего каталога

это должно выглядеть примерно так

  • app.js
  • package.json
  • node_modules /

, затем запустить node app.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...