如何让 Webpack HMR 在 npm 工作区上与 Typescript monorepo 配合使用

Mas*_*imo 5 workspace typescript webpack hot-module-replacement monorepo

我正在尝试确定如何使用 npm 工作区在打字稿 monorepo 中切换我们的项目和库。在对测试结构进行一些编码之后,我已经能够获得一个不可靠的工作解决方案。项目结构是这样的:

Workspace -+-- source(SuperApplication)
           |-- ApplicationA 
           |-- ApplicationB
           | ...
           |-- ApplicationN
           |-- Local_library1
           |-- Local_library2
           | ...
           +-- Local_libraryN
Run Code Online (Sandbox Code Playgroud)

我有依赖于共享库的应用程序。所以每个package.json都包含类似以下内容:

...
  "main": "./dist/esm/xx.js",
  "module": "./dist/esm/xx.js",
  "types": "./dist/typings/xx.d.ts",
 ...
"dependencies": {
    "@company/local_libraryX": "file:packages/X",
    "@company/local_libraryY": "file:packages/Y",
...
    "@company/local_libraryZ": "file:packages/Z"
  }
...
Run Code Online (Sandbox Code Playgroud)

虽然tsconfig.json包含:

...
    "incremental": true,
    "composite": true,  
...
Run Code Online (Sandbox Code Playgroud)

超级应用程序是一个简单的应用程序,可以帮助用户选择他需要的应用程序。

实际上每个应用程序都有自己的 webpack 配置(由于之前的工作方式)

不幸的是,当我对依赖项进行更改时,我无法让 HMR 工作,并且每次都需要重建/重新加载。我正在寻找一种利用 HMR 的方法,同时在每个应用程序/库中进行更改。我没有发布任何代码,因为我认为这是由于配置错误造成的,有人可以给我一些建议吗?