Webpack多次包含公共本地模块

时间:2018-11-16 11:53:35

标签: javascript webpack

我有一个应用程序,在其中我必须引用来自同一位置的另一个位置的其他常见库。所以结构很简单:

- my-app
---- node_modules
-------- my-lib1 (symlink)
- common
---- my-lib1
---- my-lib2
-------- node_modules
------------ my-lib1 (symlink)

回购:https://github.com/maxsinev/webpack-local-modules-bundling-problem

我使用webpack和babel捆绑和转译我的项目,但是my-lib1包含在结果捆绑中两次。 如何将webpack配置为仅包含一次lib?

关于我的webpack conf-需要使用webpack config中的resolve.symlinks: false来转换我的公共库与babel。如果我将其设置为true,则webpack会相对于已处理的项目搜索装入程序或babel预设,并将符号链接路径解析为实际的路径,但是我想像从node_modules中的模块一样使用它们。

我尝试过:

  • resolve.symlinks: false + resolve.alias-它可以工作(我现在使用),但是如果我将创建my-lib3my-lib1的依赖库my-lib2会怎样?但不是main-app?在这种情况下,我不想将my-lib3作为依赖项添加到main-app并添加另一个别名。
  • resolve.modules = [path.resolve(__dirname, 'node_modules')]-仅在您的main-app与所有本地库具有相同依赖项的情况下有效。

我在SO中阅读了一些答案,并在github问题中发表了评论,但我找不到合适的解决方案甚至想法。

0 个答案:

没有答案