当依赖项已经在主供应商文件中时,Webpack 会继续从依赖项中包含 node_modules
Webpack keeps including node_modules from dependencies when they are already in main vendor file
我正在使用自制的组件库在我的项目之间共享组件。问题是,即使在使用 webpack
的 Authoring libraries 指南后,它仍然在我的主构建中包含这些依赖项,我不知道这是由什么设置引起的...
构建分析(捆绑我的应用时)
在这里您可以看到 node_modules
和 wizer-components/node_modules
。包括 react-dom
两次(以及其他)
构建分析(组件的)
如您所见,此处未捆绑 node_modules...
设置文件
因为找不到问题所在我创建了gists of my config files:
webpack.config.js
(组件库)
webpack.config.production.js
(应用程序)
设置
正如信息一样,我正在使用带有 lerna
到 npm link
(wizer-components) 依赖项的 monorepo 设置,而无需将其推送到 npm
作为模块。这可能是 webpack 认为需要重新添加 react
(和其他)的问题吗?
经过总共 4 天的努力(在我提出问题之前就这样做了),我终于解决了它!
问题出在 lerna / NPM link 和依赖项解析上,请参阅此答案底部的便利 links。
我通过执行以下步骤修复了它:
- 将
dependencies
(react
、react-dom
)移动到 wizer-components
(我的组件库)package.json
文件中的 peerDependencies
- 正在删除我所有的
node_modules
文件夹(应用程序和组件库)
- 运行
$ lerna bootstrap
重新下载我的node_modules
- 删除组件库的构建过程(我在构建应用程序时构建这些)
- 在这些关键领域改变我的
webpack.config.production.js
(拍了一张照片,因为它不会在这里格式化-_-
有帮助links(也看看评论):
- npm link doesn't play nice with peer dependencies
- How to avoid
loaded two copies of React
error when developing an external component?
我正在使用自制的组件库在我的项目之间共享组件。问题是,即使在使用 webpack
的 Authoring libraries 指南后,它仍然在我的主构建中包含这些依赖项,我不知道这是由什么设置引起的...
构建分析(捆绑我的应用时)
在这里您可以看到 node_modules
和 wizer-components/node_modules
。包括 react-dom
两次(以及其他)
构建分析(组件的)
如您所见,此处未捆绑 node_modules...
设置文件
因为找不到问题所在我创建了gists of my config files:
webpack.config.js
(组件库)webpack.config.production.js
(应用程序)
设置
正如信息一样,我正在使用带有 lerna
到 npm link
(wizer-components) 依赖项的 monorepo 设置,而无需将其推送到 npm
作为模块。这可能是 webpack 认为需要重新添加 react
(和其他)的问题吗?
经过总共 4 天的努力(在我提出问题之前就这样做了),我终于解决了它!
问题出在 lerna / NPM link 和依赖项解析上,请参阅此答案底部的便利 links。
我通过执行以下步骤修复了它:
- 将
dependencies
(react
、react-dom
)移动到wizer-components
(我的组件库)package.json
文件中的peerDependencies
- 正在删除我所有的
node_modules
文件夹(应用程序和组件库) - 运行
$ lerna bootstrap
重新下载我的node_modules
- 删除组件库的构建过程(我在构建应用程序时构建这些)
- 在这些关键领域改变我的
webpack.config.production.js
(拍了一张照片,因为它不会在这里格式化-_-
有帮助links(也看看评论):
- npm link doesn't play nice with peer dependencies
- How to avoid
loaded two copies of React
error when developing an external component?