У меня есть набор корпоративных приложений, которые я разрабатываю. Я выделил общие элементы управления в связанную библиотеку элементов управления (пакет узлов). Я сделал это зависимостью от других узловых пакетов, используя ссылку npm.
Основные проекты приложения создаются с использованием create-реагировать-приложение и использовать для сценария разработки и сборки.
Потому что реагирует-scripts не преобразует файлы вне папки src, мне пришлось использовать nwb для предварительной компиляции в ES5. Сначала все шло хорошо.
Однако, когда я переместил определенные компоненты, которые используют <Link>
и <NavLink>
из основных проектов в библиотеку, и я использую эти компоненты, я получаю эту ошибку:
«Ошибка: не удалось выполнить инвариант: не следует использовать <Link>
вне <Router>
»
Когда я перемещаю исходный файл для рассматриваемых компонентов обратно в основной проект, все работает нормально.
React-scripts не поддерживает компиляцию / преобразование чего-либо (jsx или tsx) вне папки src проекта create-Reaction-app.
Я пробовал два решения:
- Использование программных ссылок Windows , чтобы исходные файлы jsx и tsx отображались как часть структуры папок src. Это не работает, потому что между узлом, babel, веб-пакетом и реагирующими скриптами программные ссылки полностью разрешены. Я не знаю, как обойти это.
- Выполнение команды response-scripts eject , чтобы дать мне больше прямого контроля над процессом сборки. Я попытался обновить файл paths.js в скриптах, чтобы включить узел_модули // src как часть папок src. Если это не удалось, система сборки отказывается компилировать файлы как часть процесса сборки.
Прямо сейчас я растерялся и не знаю, как обойти это или какова реальная проблема. Почему предварительно скомпилированный компонент ES5 не просто работает в первую очередь?