它在本地工作。 但是,一旦我将它部署到 firebase 上,它就会产生 nextServer 500 内部错误。
8.1.3
module.exports = {
i18n: {
defaultLocale: 'en',
locales: ['en', 'ko'],
},
};
_app.tsx
import { appWithTranslation } from 'next-i18next';
const App = ({ Component, pageProps }: AppProps): JSX.Element => {
return (
<Provider store={store}>
<MainWrapper>
<Component {...pageProps} />
</MainWrapper>
</Provider>
);
};
export default appWithTranslation(App);
关于 serverSideRendering 的代码片段
export const getStaticProps: any = async ({ locale }) => ({
props: {
...(await serverSideTranslations(locale, [])),
},
});
export const getServerSideProps: GetServerSideProps = async (context) => {
const { teamId, email } = context.query;
let teamName;
if (!teamId) {
return { props: {} };
}
if (teamId) {
teamName = await getTeamName(teamId as string);
}
return {
props: {
teamId,
teamName,
email: email || '',
...(await serverSideTranslations(context.locale, [])),
},
};
};
答案 0 :(得分:1)
几天前我遇到了同样的错误,就我而言,根本原因是我的 '.'
文件。我使用的是 next.config.js
并且无法使其与 i18n 的配置一起使用。
我之前是这样设置的:
next-compose-plugins
所以现在我要添加没有 // next.config.js
module.exports = withPlugins([
[
withImages({
esModule: true
})
],
i18n // error
])
的配置:
withPlugins
不确定这是否适合您,但出于调试目的,我建议您仅使用 // next.config.js
module.exports = withImages({
esModule: true,
i18n
})
配置测试您的应用程序。
i18n
我的 // next.config.js
module.exports = {
i18n
}
示例:
next-i18next.config.js
答案 1 :(得分:0)
使用 next-compose-plugins 时,从他们的 Usage section,
// next.config.js
const withPlugins = require('next-compose-plugins');
module.exports = withPlugins([...plugins], nextConfiguration);
nextConfiguration 应该是配置,意思是一个对象。
所以下面的代码片段应该可以工作:
module.exports = withPlugins(
[withMdx(mdxConfig)],
{
i18n,
}
)