#typescript #next.js #nextjs-image
#typescript #next.js #nextjs-изображение
Вопрос:
Я пытаюсь создать мини-приложение с использованием TypeScript в NextJS, поскольку теперь TypeScript поддерживается в Next.js из коробки. И я также хочу включить эти две недавно добавленные функции:
- Компонент изображения и оптимизация изображения (next / image)
- Интернационализированная маршрутизация (i18n)
Возьмем i18n
, к примеру:
// next.config.js
module.exports = {
i18n: {
// These are all the locales you want to support in
// your application
// Sub-path Routing
locales: ['en', 'cn'],
// This is the default locale you want to be used when visiting
// a non-locale prefixed path e.g. `/hello`
defaultLocale: 'en',
},
}
К сожалению, мне очень сложно использовать их в моем next.config.js
, что касается обычного приложения (только JavaScript), оно работает так, как должно. Но для версии TypeScript я получаю эту ошибку:
(node:15704) UnhandledPromiseRejectionWarning: TypeError: Cannot set property '__nextLocale' of undefined
Будет очень полезно, если кто-нибудь из вас сможет мне помочь или может привести пример того, как правильно использовать next.config.js
и включать эти новые функции в приложение TypeScript NextJS.
Ответ №1:
Я думаю, что нет языкового стандарта с именем ‘en’ или ‘cn’
https://en.wikipedia.org/wiki/Language_localisation
Я думаю, это то, что вам нужно:
const withImages = require('next-images')
const withPWA = require('next-pwa')
module.exports = withPWA(
withImages({
images: {
domains: [
'images.ctfassets.net',
'imgix.cosmicjs.com',
'cdn.cosmicjs.com',
],
i18n: {
// These are all the locales you want to support in
// your application
locales: ['en-US', 'zh-CN'],
// This is the default locale you want to be used when visiting
// a non-locale prefixed path e.g. `/hello`
defaultLocale: 'pt-BR',
...
}
},
Комментарии:
1. Регион является необязательным в Next.js локали i18n .