PhantomJS не может использовать PDFJS

Я пишу угловое приложение, которое использует библиотеку Mozilla PDFJS. К сожалению, при выполнении модульных тестов приложения кажется, что PhantomJS не может найти части PDFJS-lib.

Вот сообщение об ошибке:

PhantomJS 1.9.8 (Linux 0.0.0) ERROR
TypeError: 'undefined' is not a function (near '...}.bind(this), REJECTION_TI...')
at /home/[...]/bower_components/pdfjs-dist/build/pdf.js:1222

Мне нужно использовать PhantomJS из-за моей инфраструктуры CI.

1 ответ

Кажется, ваша проблема связана с функцией "связать".

Если я правильно помню, PhantomJS < 2.0 изначально не поддерживает привязку, поэтому сообщение "undefined is not function". Вы можете использовать полифилл для решения этой проблемы, см.:

Проблема на GitHub: https://github.com/ariya/phantomjs/issues/10522

Polyfill на NPM: https://www.npmjs.com/package/phantomjs-polyfill

Если вы не хотите использовать NPM, есть также многозаполнение, доступное в MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

Также кажется, что PhantomJS 2.* теперь обрабатывает это правильно, но я не пробовал.

Другие вопросы по тегам