Версия Chromium не загружается.Запустите «npm install» или «yarn install» на Launcher.launch в сборке Electron - PullRequest
0 голосов
/ 23 октября 2018

Мой проект - это настольное приложение Electron, которое по клику очищает веб-сайт.Просто.

Мой проект работает нормально локально (конечно), но когда я запускаю npm run package-win и создаю свое производственное приложение Windows, я полагаю, что ошибка появляется, когда кукловод пытается запустить браузер.

Я получаю это только при сборке для Windows.он работает на моем Mac и работает без ошибок ...

Chromium revision is not downloaded. Run "npm install" or "yarn install"  at Launcher.launch

Я попытался удалить папку package.lock, node_modules и, конечно, запустить npm install, как было предложено.Я думаю, это как-то связано с управлением версиями?Вот мой package.json файл:

{
  "name": "my-project",
  "version": "1.0.0",
  "description": "My project description.",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "package-win": "electron-packager . my-project --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName=\"My Project\""
  },
  "license": "CC0-1.0",
  "devDependencies": {
    "electron": "^2.0.12",
    "electron-packager": "^12.2.0"
  },
  "dependencies": {
    "electron-json-storage": "^4.1.4",
    "nodemailer": "^4.6.7",
    "puppeteer": "^1.8.0"
  }
}

Я могу сказать, что моя попытка перехвата завершается неудачей, так как сообщение об ошибке происходит из перехвата, поэтому что-то внутри этого блока не выполняется, но только в рабочей сборке:

  async scrape(url) {
      try {
        // Launch & Setup browser
        this.browser = await puppeteer.launch({
          args: ["--no-sandbox"],
          headless: true
        });
        this.page = await this.browser.newPage();
        await this.page.setViewport({
          width: 1920,
          height: 926
        });
        this.page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');

        await this.page.goto(url);
        await this.page.waitForSelector('ul.rows');

        // Get all the listings on the page
        this.listings_array = await this.get_DOM_elements_from_page();
        console.log(this.listings_array);

      } catch (err) {
        console.log('SOMETHING WENT WRONG', err);
      }
    }

Эта функция внутри класса.Вот почему ссылка на this.Я храню браузер, страницу и другие вещи на экземпляре скребка.

...