React-Scripts v4 使用 Raw-Loader 进行热加载的挑战与解决方案
在 React-Scripts v4 版本中,通过 raw-loader
进行文件内容的热加载时,观察到与 v3 版本的一些不同行为。以下是详细说明及解决方案。
问题描述:
// eslint-disable-next-line import/no-webpack-loader-syntax
import html from '!raw-loader!./example.html';
document.body[removed] = html;
在 v3 版本 中,修改 example.html
文件会自动触发热更新,React-Scripts 会刷新页面内容。但是,升级到 v4 版本 后,修改 example.html
无法自动刷新页面。
可能原因
- v4 热更新机制 可能存在与
raw-loader
的兼容性问题,导致文件修改后不触发刷新。
解决方法
- 使用
webpack
手动配置热加载:通过额外配置 webpack 来指定raw-loader
的监听范围。 - 尝试其他加载工具:考虑使用
file-loader
等替代方案,或手动调用刷新逻辑。
小结
升级后可能带来的热加载问题可以通过 webpack 配置 来缓解,但在使用 raw-loader
时需关注与 v4 的兼容性。
182.67KB
文件大小:
评论区