Наследование компонента приложения Nextjs (pages/_app.js) в ReasonReact

Я пытаюсь реализовать React Context API в своем приложении Nextjs, используя ReasonReact, но меня догоняет способ компилятора Bucklescript, выводящий имена модулей.

Чтобы сделать контекст доступным для всего дерева, мне нужно наследовать от компонента приложения Nextjs. Проблема в том, что Next выглядит условно для pages/_app.js для наследования компонентов приложения, но когда я использую _app.re для имени файла, bsb не создает модуль Reason с именем "App".

По факту, bsb печатает следующее сообщение и игнорирует файл:

IGNORED: file _app.re under pages is ignored because it can't be turned into a valid module name. The build system transforms a file name into a module name by upper-casing the first letter

Есть ли какой-нибудь способ сказать Nextjs искать в другом месте компонент App? Или, возможно, способ настроить bsb только для этого одного файла?

Это последнее похоже на длинный выстрел, но я не хочу углубляться в javascript, если я действительно не должен.

1 ответ

Решение

Одним из возможных решений является добавление файла js с соответствующим именем, который реэкспортируется из скомпилированного модуля с именем, которое поддерживает BuckleScript:

// _app.js
export { default } from './next_app.bs.js';

Я должен был сделать это, чтобы некоторые функции работали с Гэтсби. Смотрите этот пример.

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