我正在尝试使用ReasonReact在我的Nextjs应用程序中实现React Context API,但被扣脚本编译器推断模块名称的方式所吸引。
要使上下文可用于整个树,我需要从Nextjs App组件继承。问题在于,Next会按惯例查找pages/_app.js
以实现App组件继承,但是当我使用_app.re
来命名文件名时,bsb
不会产生一个名为“ App”的Reason模块。 / p>
实际上,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。
答案 0 :(得分:3)
一种可能的解决方案是添加一个具有适当名称的js文件,该文件将从BuckleScript确实支持的名称的已编译模块中重新导出:
// _app.js
export { default } from './next_app.bs.js';
我必须这样做才能使某些功能与Gatsby一起使用。参见this example。