nuxt 设置i18n后多语言文件不会动态更新

nuxt 设置i18n后多语言文件不会动态更新

昨天遇到的一个问题,然后研究了一整天,今天才得到解决

nuxt 设置i18n多语言时多语言文件不会动态更新

我的原始代码如下:

{
  modules: [
    '@nuxtjs/i18n',
  ],
  i18n: {
    locales: [
      {
        code: 'en',
        iso: 'en-US',
        name: 'English',
        file: 'en.js'
      },
      // {
      //   code: 'zh',
      //   iso: 'zh-CN',
      //   name: '简体中文',
      //   file: 'zh.json'
      // }
    ],
    defaultLocale: 'en',
    vueI18n: {
      fallbackLocale: 'en',
      messages: {
        en: require('./locales/en.js'),
        // zh: require('./locales/zh.js')
      }
    },
    parsePages: false,
    disableBuildMiddleware: true // 禁用中间件构建
  },
}

咋看之下,一点毛病也没有,官方文档就是这么配的

但是配完之后当我改多语言文件时就出现问题了,无论我怎么改,终端都不会HMR,怎么回事?

原因是因为多语言文件是用require导入的,所以webpack不会监听本文件

nuxt.config 是nuxt 配置级别的文件,不由 webpack 处理,因此只会执行一次并且不会监视其中的导入引用。

解决方案:

然后我就反复的看这个官方文档,注意到了这个参数:
在这里插入图片描述
加上lazy之后的代码:

  i18n: {
    lazy: true,
    langDir: 'locales/',
    locales: [
      {
        code: 'en',
        iso: 'en-US',
        name: 'English',
        file: 'en.js'
      },
      // {
      //   code: 'zh',
      //   iso: 'zh-CN',
      //   name: '简体中文',
      //   file: 'zh.json'
      // }
    ],
    defaultLocale: 'en',
    parsePages: false,
    disableBuildMiddleware: true // 禁用中间件构建
  },

非常丝滑!!

具体配置教程大家可以参考官网https://i18n.nuxtjs.org/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值