Как указать папку node_modules для модуля узла с локальной ссылкой

#node.js #npm #webpack #node-modules

#node.js #npm #webpack #узел-модули

Вопрос:

Нам нужно указать папку node_modules для модуля узла с локальной ссылкой, который находится во внешней папке относительно текущей папки приложения.

У нас есть сценарий, в котором мы ссылаемся на js-файлы внешнего общего модуля в другом клиентском приложении, однако одни и те же модули узла, являющиеся ссылками в обоих, дублируются в окончательной сборке. мы попытались использовать webpack.optimize.DedupePlugin() без какого-либо успеха.

Структура каталогов выглядит следующим образом:

  1. У нас есть частный модуль npm на локальном диске под названием «общий», а затем у нас есть папка нашего проекта под названием ‘приложение’.
  2. Обе папки находятся на одном уровне в структуре каталогов и находятся под одним и тем же корнем.
  3. Само ‘приложение’ является модулем npm и имеет файл package.json со своей собственной папкой node_modules.
    |—root
    |— common/node_modules
    |— app/node_modules
    Мы хотим указать через конфигурацию либо через npm, либо через веб-пакет, чтобы приложение разрешало ссылки из указанного пути node_modules и не ссылалось на какое-либо другое местоположение node_modules, включая местоположение в общем модуле.

Ответ №1:

Вы можете использовать ссылку npm или просто символическую ссылку. Сделайте что-то подобное:

 cd root/app (your app directory)
npm link ../common
  

или

 cd root/app (your app directory)
ln -s ../common node_modules/common
  

Комментарии:

1. npm link работает, но я должен указать app/node_modules папку в моем wepback.resolve.fallback , чтобы она работала, не кажется правильным. Разве нет лучшего способа сделать это?