Cli: [ОШИБКА] npm update --depth breaks dependencies

Созданный на 17 дек. 2019  ·  4Комментарии  ·  Источник: npm/cli

Что почему

NPM сообщает о неудовлетворенной зависимости после выполнения рекурсивного / глубокого обновления

Когда


Где



  • н / д

Как

Текущее поведение

Действия по воспроизведению

  1. Создайте папку локально и запустите npm init
  2. Установите пакет с более чем одним уровнем зависимостей, например, npm i -D @semantic-release/exec
  3. Подождите, пока одна из их глубоких зависимостей получит более новую версию
  4. Выполнить npm --depth 9999 update

Ожидаемое поведение

  • Не должно быть неудовлетворенных зависимостей. Обновления выполняются в соответствии с файлом package.json их родителя или любым npm-shrinkwrap.json их предка.
  • Другими словами, он должен действовать так, как будто нет package-lock.json и приступить к разрешению всех зависимостей, установке / обновлению / удалению по мере необходимости, а затем обновить файл блокировки с помощью разрешенного дерева.

Кто



  • н / д

Рекомендации



  • н / д

Самый полезный комментарий

Похоже, я приготовил дублированный выпуск

Что почему

Команда npm update --depth <number> теряет dev: true для обновленных зависимостей devDependencies.

Когда

  • Всякий раз, когда я использую npm update --depth <number> для пакетов с незавершенными зависимостями devDependencies

Где

  • публичный реестр npm

Как

Текущее поведение

Он теряет dev: true за обновленных зависимостей devDependencies

Действия по воспроизведению

  1. Возьмите это репо https://github.com/pahan35/npm-bugs
  2. Отделение кассы loses-dev-for-dev-deps
  3. Выполнить npm i
  4. Выполнить npm update --depth 7

Ожидаемое поведение

Я ожидаю, что это действие должно сохранить dev: true для обновленных зависимостей devDependencies

Рекомендации

Возможно связано с # 944

Все 4 Комментарий

Похоже, я приготовил дублированный выпуск

Что почему

Команда npm update --depth <number> теряет dev: true для обновленных зависимостей devDependencies.

Когда

  • Всякий раз, когда я использую npm update --depth <number> для пакетов с незавершенными зависимостями devDependencies

Где

  • публичный реестр npm

Как

Текущее поведение

Он теряет dev: true за обновленных зависимостей devDependencies

Действия по воспроизведению

  1. Возьмите это репо https://github.com/pahan35/npm-bugs
  2. Отделение кассы loses-dev-for-dev-deps
  3. Выполнить npm i
  4. Выполнить npm update --depth 7

Ожидаемое поведение

Я ожидаю, что это действие должно сохранить dev: true для обновленных зависимостей devDependencies

Рекомендации

Возможно связано с # 944

Я также сталкиваюсь с тем, что npm update забывает флаг dev для зависимостей, когда --depth больше 0. Может быть, это не обязательно для более низкой глубины?

Я обнаружил, что флаг разработчика восстанавливается после переустановки модулей узла ( rm -rf node_modules; npm install )

Я вижу ту же проблему потери флага dev после использования npm update --depth но только для зависимостей dev моего проекта, которые являются реальными зависимостями в другой зависимости.

В моем случае другая зависимость добавляет «@ types / node» в качестве зависимости, но в моем проекте она используется как зависимость dev:

package.json зависимости "a":

{
  name: "a",
  dependencies: {
    "@types/node": ">=5.10"
  }
}

мой проект:

{
  dependencies: {
    "a": "1.0.0"
  },

  devDependencies: {
    "@types/node": "^12.0.0",
    "somethingElse": "1.0.0"
  }
}

после npm update --depth=99 флаг разработчика подходит для somethingElse но неверен для @type/node

edit: npm install похоже, сохраняет @types/node как зависимость dev в корне + как зависимость во вложенном node_module в компоненте «a».
npm update устанавливает его только один раз как зависимость в корневом каталоге

Была ли эта страница полезной?
0 / 5 - 0 рейтинги