@nuxtjs/i18n安装配置报错:Cannot read properties of undefined (reading 'options')
问题
在Nuxt项目中安装@nuxtjs/i18n,执行npm install @nuxtjs/i18n无异常。随后在nuxt.config.ts中添加配置:
['@nuxtjs/i18n', { locales: [ { code: 'it', iso: 'it-IT', file: 'it-IT.js' } ], defaultLocale: 'it' }]
同时在tsconfig.json的compilerOptions.types中添加了@nuxtjs/i18n。但构建项目时出现错误:
Cannot start nuxt: Cannot read properties of undefined (reading 'options')
at default (/node_modules/@nuxtjs/i18n/src/index.js:13:92)
at installModule (/node_modules/@nuxt/kit/dist/index.mjs:416:9)
at async initNuxt (/node_modules/nuxt/dist/index.mjs:1823:7)
at async load (/node_modules/nuxt/node_modules/nuxi/dist/chunks/dev.mjs:6779:9)
at async Object.invoke (/node_modules/nuxt/node_modules/nuxi/dist/chunks/dev.mjs:6840:5)
at async main (/node_modules/nuxt/node_modules/nuxi/dist/cli.mjs:50:20)
已遵循官方指南配置,即使移除locales和defaultLocale配置,问题仍存在。请问配置哪里出错了?缺少什么?
解决方案
这个错误大多是版本不兼容或配置格式不符合当前版本要求导致的,按以下步骤排查:
检查版本兼容性
- Nuxt 3需要搭配
@nuxtjs/i18nv8+版本,Nuxt 2对应v6或v7版本。执行npm list @nuxtjs/i18n查看当前版本,不匹配的话卸载重装:# Nuxt 3 用户 npm uninstall @nuxtjs/i18n npm install @nuxtjs/i18n@latest # Nuxt 2 用户 npm uninstall @nuxtjs/i18n npm install @nuxtjs/i18n@7
- Nuxt 3需要搭配
修正nuxt.config.ts配置格式
- Nuxt 3中模块配置需放在
modules数组内,且推荐用独立的i18n配置项而非数组嵌套:export default defineNuxtConfig({ modules: ['@nuxtjs/i18n'], i18n: { locales: [ { code: 'it', iso: 'it-IT', file: 'it-IT.js' } ], defaultLocale: 'it', // 必须指定语言文件存放目录 langDir: 'locales/' } }) - 确保项目根目录下创建了
locales文件夹,且里面有it-IT.js语言文件,示例内容:export default { welcome: 'Benvenuto' }
- Nuxt 3中模块配置需放在
移除tsconfig中的手动类型配置
- Nuxt 3中
@nuxtjs/i18n会自动注入类型定义,无需手动在tsconfig.json的compilerOptions.types中添加,直接删除该配置项。
- Nuxt 3中
清理缓存重建项目
- 执行以下命令清理缓存和依赖,重新安装后启动:
rm -rf node_modules .nuxt .output npm install npm run dev
- 执行以下命令清理缓存和依赖,重新安装后启动:
内容的提问来源于stack exchange,提问作者erikscandola

