Решение: если вы хотите использовать uploadFile, не используйте Puppeteer версии 2.1.1, а пока придерживайтесь 2.0.0. В вашей упаковке. json:
"puppeteer": "^2.0.0"
Вот деталь. Когда я развивал свою маму c, я не указывал версию для кукловода. Но мне довелось использовать версию, в которой работает uploadFile. Однако каждый раз, когда вы отправляете sh в Heroku, Heroku будет проверять ваш пакет. json, чтобы установить все зависимости. В моем случае Heroku обновился до последней версии (к моменту написания этой статьи 2.1.1), что нарушило функцию uploadFile.
Несмотря на то, что я распечатал версию Chromium на раннем этапе и заметил, что Heroku использует более высокую версию, мне никогда не приходило в голову, что я должен протестировать более старую версию Puppeteer. Вместо этого я потратил много времени на тестирование других обходных путей, которые все провалились. В любом случае, как только вы устраните невозможное, все остальное, каким бы невероятным оно ни было, должно стать истиной.
Я опубликую проблему на Puppeteer и надеюсь, что это будет исправлено в следующем выпуске.