Вот что сработало для меня. Сначала я очищаю все свои buildpack-пакеты, а затем добавляю puppeteer-heroku-buildpack и heroku / nodejs:

тоящее время я работаю над проектом, в котором мне нужно создать приложение, которое должно открыть URL-адрес в браузере, чтобы использовать в нем некоторые функции.
для этого я использовалкукольник внутри скрипта nodejs, чтобы открыть браузер на стороне сервера, чтобы я мог использовать его как API.

Вот код (nodejs):

app.get('/do', (req, res) => {
    console.log("ok");
    (async() => {
        var browser = await puppeteer.launch(
            { args: ['--no-sandbox','--disable-setuid-sandbox'], headless: false });
        var page = await browser.newPage();
        await page.goto('https://url.com');//i hid the url for personal reason
        await page.waitFor(1000); // to wait for 1000ms
        await page.waitFor('body div'); // to wait for the 'body div' selector in body
        await page.waitFor(() => Math.random() < 0.5); // to wait for the predicate
        await page.screenshot({
            path: 'public/photo.png'
        });

        await browser.close();
        await res.end('<html><head></title></head><body><h1><img src=photo.png ></img></h1></body></html>');
    })();

});

Этот код работает локально, но при развертывании на heroku он показывает эту ошибку:

приложение [web.1]: / отправить
app [web.1]: (узел: 4) UnhandledPromiseRejectionWarning: необработанное отклонение обещания (идентификатор отклонения: 1): ошибка: не удалось запустить Chrome!
app [web.1]: /app/node_modules/puppeteer/.local-chromium/linux-515411/chrome-linux/nacl_helper: ошибка при загрузке общих библиотек: libnss3.so: не удается открыть файл общих объектов: нет такого файла или каталога
app [web.1]: [21: 21: 1228 / 131735.202176: ОШИБКА: nacl_fork_delegate_linux.cc (316)] Неправильный запуск помощника при загрузке NaCl (0 байт)
Приложение [web.1]:
Приложение [web.1]:
app [web.1]: УСТРАНЕНИЕ НЕИСПРАВНОСТЕЙ:https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
Приложение [web.1]:
app [web.1]: (узел: 4) [DEP0018] DeprecationWarning: Необработанные отклонения обещания устарели. В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом завершения.

Но если я уберуheadless: false это работает, но проблема в том, что URL отображает согревающую страницу, которая мне нужна для использования браузера, такого как Chrome, Mozilla или Safari.

Как я могу решить эту проблему?

Ответы на вопрос(2)

Ваш ответ на вопрос