首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看Vite项目中的公共目录以进行热重加载?

如何查看Vite项目中的公共目录以进行热重加载?
EN

Stack Overflow用户
提问于 2021-10-19 06:36:34
回答 2查看 4.7K关注 0票数 8

我有一个用Vite配置的react项目。

热重加载很好,但是我使用react-i18next来支持多语言,这是我的结构:

代码语言:javascript
复制
public
  -> en
    -> translation.json
  -> ru
    -> translation.json

当我更改translation.json文件时,Vite不查看它,我必须刷新页面才能看到更改。

有没有一种方法可以让Vite监视public目录中的所有文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-19 09:49:02

你可以用一个插件来实现这一点。

我在第一个回答中犯了一个错误,它应该是一个full-reload事件,而不是一个update事件。

代码语言:javascript
复制
export default function CustomHmr() {
    return {
      name: 'custom-hmr',
      enforce: 'post',
      // HMR
      handleHotUpdate({ file, server }) {
        if (file.endsWith('.json')) {
          console.log('reloading json file...');
  
          server.ws.send({
            type: 'full-reload',          
            path: '*'
          });
        }
      },
    }
}

然后在vite.config.js中添加插件:

代码语言:javascript
复制
{
  plugins: [
    CustomHmr()   <---  custom plugin
  ]
}

我用一个有用的例子给你做了一个关于Github的回购:

结果说明

票数 7
EN

Stack Overflow用户

发布于 2022-02-08 15:18:47

我修改了flydev的答案,这样它就可以在不重新加载整个页面的情况下重新加载i18n相关的组件。(目前在打字稿项目中使用)

代码语言:javascript
复制
import { PluginOption } from "vite";

export default function I18nHotReload(): PluginOption {
  return {
    name: 'i18n-hot-reload',
    handleHotUpdate({ file, server }) {
      if (file.includes('locales') && file.endsWith('.json')) {
        console.log('Locale file updated')
        server.ws.send({
          type: "custom",
          event: "locales-update",
        });
      }
    },
  }
}

然后将其添加到vite的插件中:

代码语言:javascript
复制
plugins: [
    ...,
    i18nHotReload(),
]

然后在代码可以到达的任何地方添加侦听器(我在i18n初始配置文件中使用它)

代码语言:javascript
复制
if (import.meta.hot) {
  import.meta.hot.on('locales-update', () => {
    i18n.reloadResources().then(() => {
      i18n.changeLanguage(i18n.language)
    })
  })
}

i18n.reloadResources()并不会触发翻译热重加载

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69626090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档