我有一个应用程序,在其中我必须引用来自同一位置的另一个位置的其他常见库。所以结构很简单:
- 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-lib3
和my-lib1
的依赖库my-lib2
会怎样?但不是main-app
?在这种情况下,我不想将my-lib3
作为依赖项添加到main-app
并添加另一个别名。 resolve.modules = [path.resolve(__dirname, 'node_modules')]
-仅在您的main-app
与所有本地库具有相同依赖项的情况下有效。我在SO中阅读了一些答案,并在github问题中发表了评论,但我找不到合适的解决方案甚至想法。