Yarn Workspaces 和 Webpack 热模块重新加载 React App

Posted

技术标签:

【中文标题】Yarn Workspaces 和 Webpack 热模块重新加载 React App【英文标题】:Yarn Workspaces And Webpack Hot Module Reloading React App 【发布时间】:2019-01-20 18:04:00 【问题描述】:

我正在使用 Yarn Workspaces 来管理单一存储库。我正在使用 webpack 4 进行热模块重新加载。在我的 mono repo 中,我有一个应用程序、一个 UI 组件库和另一个用于授权用户的组件库(auth 包)。我在应用程序和身份验证包中都使用了组件库。应用程序本地的所有内容热重载都很好,但 UI 组件库不会热重载 - 它需要完全刷新。

我尝试使用module.hot.accept(...) 接受 UI 组件库,但似乎没有接受。

猜测这个问题有点牵强,但有什么想法吗?

【问题讨论】:

您的组件库是如何设置的?我通常将我的组件库设置为通过 babel 编译并仅在应用程序上运行 webpack 以进行捆绑。 检查 webpack 是否是 watch 中的 ignoring node_modules。在工作区中,引用的组件库包最终会出现在 node_modules 中,因此您可能希望将其包含在手表中。当然,我假设您正在为组件库和应用程序运行单独的 webpack 捆绑器,因此当您修改组件代码时,它会即时捆绑到其 node_modules 包文件夹中。 @pizza-r0b 你设法解决了这个问题吗?我有同样的问题,正在寻找解决方案。 @superkinhluan 不幸的是 我也对解决方案感兴趣,目前还没有运气... 【参考方案1】:

在您的 package.json 开发构建脚本中添加 --hot。 它适用于 webpack 4。

【讨论】:

以上是关于Yarn Workspaces 和 Webpack 热模块重新加载 React App的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript 尝试使用 Yarn Workspaces 编译兄弟文件夹的 node_modules

Yarn Workspaces 是仅存在于一个工作空间中的提升模块

如何在 Lerna + Yarn Workspaces repo 中安装 npm 包?

[CLI] Create a Single-Command Node.js CLI with Oclif, TypeScript and Yarn Workspaces

npm 相当于 yarn install 和 yarn webpack:build

Yarn+webpack 构建项目(二)