当依赖项已经在主供应商文件中时,Webpack 会继续从依赖项中包含 node_modules

Webpack keeps including node_modules from dependencies when they are already in main vendor file

我正在使用自制的组件库在我的项目之间共享组件。问题是,即使在使用 webpackAuthoring libraries 指南后,它仍然在我的主构建中包含这些依赖项,我不知道这是由什么设置引起的...

构建分析(捆绑我的应用时)

在这里您可以看到 node_moduleswizer-components/node_modules。包括 react-dom 两次(以及其他)

构建分析(组件的)

如您所见,此处未捆绑 node_modules...

设置文件

因为找不到问题所在我创建了gists of my config files:

设置

正如信息一样,我正在使用带有 lernanpm link (wizer-components) 依赖项的 monorepo 设置,而无需将其推送到 npm 作为模块。这可能是 webpack 认为需要重新添加 react(和其他)的问题吗?

经过总共 4 天的努力(在我提出问题之前就这样做了),我终于解决了它!

问题出在 lerna / NPM link 和依赖项解析上,请参阅此答案底部的便利 links。

我通过执行以下步骤修复了它:

  1. dependenciesreactreact-dom)移动到 wizer-components(我的组件库)package.json 文件中的 peerDependencies
  2. 正在删除我所有的 node_modules 文件夹(应用程序和组件库)
  3. 运行$ lerna bootstrap重新下载我的node_modules
  4. 删除组件库的构建过程(我在构建应用程序时构建这些)
  5. 在这些关键领域改变我的webpack.config.production.js

(拍了一张照片,因为它不会在这里格式化-_-

有帮助links(也看看评论):