установить пакет npm из bitbucket без npm -shrinkwrap. json - PullRequest
0 голосов
/ 20 апреля 2020

Вопрос:

В NodeJS как можно проигнорировать сжатую обертку зависимости "Пакет B" при "npm установке" в вышестоящем порядке "Проект A ", когда" Пакет B "происходит из частного репо.

Фон:

Допустим, мы разрабатываем на частном npm -пакете" fancy-frontend "и получил систему CI для этого, которая требует держать npm -shrinkwrap. json рядом с пакетом. json (чтобы иметь детерминированный c снимок всех зависимостей).

В другом репо мы делаем разработку на более высокой системе с помощью проекта узла "fancy-system". Этот проект зависит от теговой версии "fancy-frontend". Поэтому мы выполняем установку этого проекта с помощью команды

npm i git+ssh://git@bitbucket.org/myteam/fancy-frontend.git#v1.0.2 --save

Из-за существующего npm -shrinkwrap. json в нашей под-зависимости "fancy-frontend" npm, кажется, использует эту подусадочную пленку и создает полное независимое дерево пакетов в модулях "fancy-frontend". Завершение работы с этим огромным деревом файлов зависимостей:

fancy-system/
   package.json
   npm-shrinkwrap.json
   node_modules/
     react-16.13.1
     fancy-frontend/
        package.json
        npm-shrinkwrap.json
        node-modules/
          react-16.13.1      // e.g. same react dep as in parent, but has it's own instance
          other-deps
     other deps

ПРИМЕЧАНИЕ. Я добавил реакцию как образец зависимости, которая должна использоваться обоими модулями, но это не так.

Проблемы:

Мы получили огромную массу зависимостей с множеством дублированных пакетов (хотя "fancy-system" и "fancy-frontend" ссылаются на одну и ту же версию!). У нас есть проблемы с реакцией и множеством экземпляров (хотя мы устанавливаем реакцию как зависимость от сверстников в "fancy-frontend"!).

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