如何要求不同的节点模块客户端?

How to require a different node module client-side?

我正在尝试使用 i18next 将同构 React 应用程序国际化。虽然让它在服务器端工作没什么大不了的,但它在客户端失败了,告诉我 fs.readFile is not a function。据我所知,为了在浏览器中使用 i18next(使用 browserify),你需要 require i18next-client,这意味着我需要 require 服务器上的一个不同的节点模块在客户端上。经过一些研究后,我仍然完全不知道如何完成这项工作,并问自己我是否理解这里完全错误的地方?

您可以查看 process.browser,它仅在使用 Browserify 时在浏览器端定义。

var i18n = process.browser ? require('i18next-client') : require('i18next');