«Uncaught ReferenceError: require is notfined» только на некоторых машинах - PullRequest
0 голосов
/ 14 февраля 2020

Я начал получать эту ошибку сегодня в наборе тестов проекта Angular. js 1.5 / Angular 5:

HeadlessChrome 64.0.3282 (Linux 0.0.0) ERROR
  An error was thrown in afterAll
  Uncaught ReferenceError: require is not defined

Эта проблема появляется после успешного выполнения всех моих тестов , Что странно, так это то, что он хорошо работает локально, но на сервере Jenkins CI он не работает. От других разработчиков только 1 из 10 видит ту же проблему, что и Дженкинс.

Есть множество других сообщений, упоминающих эту же ошибку, но ни одно не решает мою проблему, например this , это , это , ...

Кто-нибудь знает, в чем может быть проблема?

Редактировать:

Исключение происходит в modernizr/lib/cli.js, но не отображается трассировка стека:

enter image description here

, и мы также не получаем стек вызовов:

enter image description here

1 Ответ

0 голосов
/ 14 февраля 2020

Изучив зависимости bower нашего проекта с помощью bower ls -o, мы обнаружили разницу во временной зависимости Zurb Foundation.

В местах, где она работала, modernizr был установлен на 3.5.0:

├─┬ foundation#5.5.1
│ ├── fastclick#1.0.6
│ ├── jquery#2.1.4
│ ├─┬ jquery-placeholder#2.0.9
│ │ └── jquery#2.1.4
│ ├─┬ jquery.cookie#1.4.1
│ │ └── jquery#2.1.4
│ └── modernizr#3.5.0

В местах, где это не работало, было установлено значение 3.9.0:

├─┬ foundation#5.5.1
│ ├── fastclick#1.0.6
│ ├── jquery#2.1.4
│ ├─┬ jquery-placeholder#2.0.9
│ │ └── jquery#2.1.4
│ ├─┬ jquery.cookie#1.4.1
│ │ └── jquery#2.1.4
│ └── modernizr#3.9.0

Приведение версии modernizr в 3.5.0 in bower.json решил проблему:

  "dependencies": {
    ...
    "modernizr": "3.5.0"
  }

Я не до конца понимаю, почему modernizr был разрешен на разных версиях на некоторых компьютерах, так как в обоих случаях у нас была закреплена одна и та же версия Zurb Foundation, но это был способ мы исправили проблему.

...