npm - избавление от вложенных node_modules в одном конкретном модуле - PullRequest
0 голосов
/ 13 декабря 2018

Я как бы потерялся здесь!

Я использую модуль, у которого есть другой модуль, вложенный в его 'node_modules.IE

my_project
    node_modules
        widely_used_module
        parent_dependency
            node_modules
               widely_used_module

У меня есть некоторые исправления в моем «своем» wide_used_module (это может быть просто второстепенная версия от оригинального дистрибьютора, но, если честно, в данном случае это «моя вилка на Github», содержащая некоторыекритические исправления).

Когда я вручную удаляю node_modules/parent_dependency/node_modules, parent_dependency начинает ссылаться на мой «широко используемый модуль» вместо своего «собственного».Но это, конечно, переопределяется, когда я снова нажимаю npm install.

  1. Могу ли я как-то запретить пакету устанавливать свои «собственные модули», или я могу заставить пакет ссылаться на корневой узел_модули и игнорировать его?собственные?
  2. Это даже правильный подход к решению таких проблем?Я тоже не хочу раскошелиться на parent_dependency ...

Спасибо

1 Ответ

0 голосов
/ 16 декабря 2018

Отвечая на мой собственный вопрос; Пряжа имеет встроенное решение для этой точной проблемы.Это может быть достигнуто и с помощью NPM, но пряжа так легко исправить, что я переместил зависимости проекта в пряжу.

Полное решение:

  1. Установкапряжа
  2. Ран yarn в корневом пути проекта
  3. Удалено package.lock.json
  4. Добавлено resolutions в мой package.json.В моем случае:

    { "dependencies": { "...": "...", "parent_dependency": "^x.y.z" }, "devDependencies": { "...": "..." }, "resolutions": { "parent_dependency/widely_used_module": "git+https://git@github.com/myuser/widely_used_module.git" } }

  5. Ран yarn install.

Результат: не более widely_used_module папка под parent_dependency.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...