nestjs-i18n v10.2.1提示未提供解析器无法正常工作,求解决方案
解决nestjs-i18n v10.2.1 "No resolvers provided!"错误
可能的原因及解决方案
1. 解析器包未安装或导入路径错误
v10版本的nestjs-i18n将解析器功能拆分到独立的@nestjs-i18n/resolvers包中,若未安装该包或导入路径错误,会导致配置的解析器不生效,触发错误。
- 安装解析器包:
npm install @nestjs-i18n/resolvers # 或使用yarn yarn add @nestjs-i18n/resolvers
- 修正导入语句:
import { AcceptLanguageResolver } from '@nestjs-i18n/resolvers';
2. 调整resolvers配置格式
部分v10版本场景下,resolvers需要以对象形式配置(指定use字段),修改你的模块配置代码:
@Module({ imports: [ ConfigModule.forRoot({ cache: true, isGlobal: true }), I18nModule.forRootAsync({ inject: [ConfigService], useFactory: (configService: ConfigService) => ({ fallbackLanguage: 'en', loaderOptions: { path: join(__dirname, 'i18n'), watch: configService.get('NODE_ENV') === 'development', }, logging: configService.get('NODE_ENV') === 'development', resolvers: [{ use: AcceptLanguageResolver }], }), }), ], })
3. 版本回退方案
若上述方法无效,直接回退到v9.x版本(该版本无需单独安装解析器包,配置写法与你当前代码兼容):
npm install nestjs-i18n@9.x # 或使用yarn yarn add nestjs-i18n@9.x
内容的提问来源于stack exchange,提问作者Евгений
相关产品推荐
相关产品推荐

