2016-01-13 4 views
0

Я получаю следующее сообщение об ошибке в браузере Chrome в режиме «развития» при обновлении нашего приложения к 2.0.0-RC4 от маршрутизатора:routeWarning вызывает бесконечный цикл

Uncaught RangeError: Maximum call stack size exceeded

enter image description here

Это выглядит исходя из бесконечного цикла в warning.js.

Это могут быть воспроизведены в моем приложении со следующим:

import routerWarning from 'react-router/lib/warning' 
routerWarning(true, 'a test message') 

ответ

0

Вы, скорее всего, либо lib или . в resolve.modulesDirectories в вашем WebPack конфигурации. Не делайте этого - это часто вызывает проблемы со сторонними библиотеками.

+0

Мои modulesDirectories является: 'modulesDirectories: [«» , "shared", "node_modules"] ' – mgp

+0

Я думаю, вы правы, что это проблема с загрузкой. Когда я запускаю 'require ('warning')' в моем исходном коде, я вижу, что он загружается из пакета предупреждений, но внутри «warning.js» реактивного маршрутизатора тот же «require ('warning')' сама загружается (вызывает бесконечный цикл). К сожалению, я не уверен, как это исправить. – mgp

+0

Вам нужно отбросить '' '' из 'modulesDirectories' - он небезопасен и будет беспорядочно разбиваться, когда это произойдет. – taion

0

Похоже, что для взаимодействия маршрутизатора требуется пакет warning в файле с именем warning.js. Это вызывает бесконечный цикл в моей конфигурации, так как warning.js реагирует на маршрутизатор, требуя самого себя вместо того, чтобы требовать пакет.

я смог обойти эту проблему, включив "warning": "2.1.0" в моем package.json и меняю resolve.modulesDirectories включить каталог warning упаковки перед любыми другими:

modulesDirectories: [ 
    path.join(__dirname, '..', '..', 'node_modules', 'warning'), 
    "", "shared", "node_modules" 
] 
Смежные вопросы