У меня есть приложение, в котором я должен ссылаться на других общих библиотек из другого места, но в том же хранилище.Таким образом, структура довольно проста:
- 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
дважды включается в комплект результатов. Как настроить веб-пакет для включения библиотеки только один раз?
О моем веб-пакете conf - 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, ноЯ не мог найти решение или даже идею, чтобы решить это правильно.