3

我正在尝试使用 ReasonReact 在我的 Nextjs 应用程序中实现 React Context API,但被 bucklescript 编译器推断模块名称的方式所吸引。

为了使整个树都可以使用上下文,我需要从 Nextjs App 组件继承。问题是 Next 按照惯例查找pages/_app.jsApp 组件继承,但是当我使用_app.re文件名时,bsb不会生成名为“App”的 Reason 模块。

实际上,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,除非我真的必须这样做。

4

1 回答 1

3

一种可能的解决方案是添加一个具有适当名称的 js 文件,该文件从具有 BuckleScript 支持的名称的已编译模块中重新导出:

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

我必须这样做才能让某些功能与 Gatsby 一起使用。请参阅此示例

于 2019-02-27T05:36:57.013 回答