Пакет Meteor Legacy обслуживается при использовании Headless Chrome (с кукольником) в Debian 10 - PullRequest
1 голос
/ 13 июля 2020

Я использую Meteor 1.10.2 в Debian 10 Buster. При загрузке сайта в Headless Chrome (с использованием puppeteer) используется пакет web.legacy, что вызывает множество ошибок - мое приложение не поддерживает устаревшие браузеры.

Пример зафиксированной ошибки в консоли:

нет такого файла или каталога, откройте '<PATH_TO_APPLICATION>/bundle/programs/web.browser.legacy/dynamic/node_modules/@babel/runtime/helpers/toConsumableArray.js'

Пользовательский агент установлен на Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/83.0.4103.116 Safari/537.36 по умолчанию.

Есть ли какие-либо другие функции обнаружения что определяет, какой комплект использовать? Что заставляет приложение использовать устаревший пакет в этой ситуации? Вот объяснение: я пытался создать предварительно обработанную версию страницы для обслуживания сканеров / поисковых систем, но мне не удалось предотвратить повторную гидратацию клиента, и именно это на самом деле вызывало ошибки. Решение заключалось в том, чтобы сначала проверить, было ли приложение предварительно обработано на стороне сервера, прежде чем вызывать код на стороне клиента (в моем случае просто проверять, имеет ли тело документа определенный c элемент в качестве его дочернего элемента).

1 Ответ

0 голосов
/ 14 июля 2020

К счастью, это было исправлено с помощью PR в Meteor 1.10.1, что позволяет вам явно опускать устаревший пакет при сборке или тестовом прогоне.

Вы можете просто использовать --exclude-archs параметр, например:

$ meteor test --exclude-archs web.browser.legacy

Связанный: https://github.com/meteor/meteor/blob/devel/History.md#v1101 -2020-03-12

Если вы хотите узнать больше о фоне web.browser.legacy вы можете просмотреть эти два ресурса:

https://github.com/meteor/meteor/blob/devel/History.md#v17 -2018-05-28

https://blog.meteor.com/meteor-1-7-and-the-evergreen-dream-a8c1270b0901

...