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.* теперь обрабатывает это правильно, но я не пробовал.