当Webpack已经存在于主供应商文件中时,Webpack会继续包含来自依赖项的node_modules

时间:2017-08-21 22:03:19

标签: npm webpack lerna

我使用自制组件库在我的项目之间共享组件。问题是,即使在webpack使用Authoring libraries指南之后,它仍然将这些依赖项包含在我的主要版本中,而且我不知道这是由...引起的设置。

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

您可以在此处看到node_moduleswizer-components/node_modules。包括react-dom两次(和其他人)

enter image description here

构建(组件的)分析

正如您所看到的,这里没有捆绑node_modules ...

enter image description here

设置文件

因为我无法找到问题所在,我创建了gists of my config files

  • webpack.config.js(组件库)
  • webpack.config.production.js(应用)

设置

就像信息一样,我使用lernanpm link的单一设置设置(wizer-components)的依赖关系,而不需要将其推送到npm模块。这可能是webpack认为需要重新添加react(和其他人)的问题吗?

1 个答案:

答案 0 :(得分:1)

在尝试完成这项工作总共4天之后(在我提出问题之前这样做了),我设法解决了(最终)!

问题在于lerna / NPM链接和依赖关系解析,请参阅本答案底部的便捷链接。

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

  1. dependenciesreactreact-dom)移至peerDependencies(我的组件库)wizer-components文件中的package.json
  2. 删除所有node_modules文件夹(应用和组件库)
  3. 正在运行$ lerna bootstrap以重新下载node_modules
  4. 删除我的组件库的构建过程(我在构建应用程序时构建这些过程)
  5. 在这些关键区域更改我的webpack.config.production.js
  6. (做了一张照片,因为它不会在这里格式化 - -

    enter image description here

    有用的链接(也请看评论):