Я использую 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 элемент в качестве его дочернего элемента).