пряжа добавить--offline не устанавливает зависимости - PullRequest
0 голосов
/ 30 октября 2019

Я работаю в очень ограниченных условиях, что означает, что у меня нет доступа к Интернету. Я настроил все, чтобы импортировать Angular Template Project и установить все пакеты из автономного кэша. Я выполнил следующие действия:

На подключенном к сети компьютере

  1. настроить yarn-offline-mirror с обрезкой в ​​false (каталог X )

  2. создайте новое угловое приложение с ng new foo --skipInstall=true

  3. установите пакеты с yarn (install), чтобы получить пряжу .lock и для хранения всех tgz-пакетов в каталоге X

  4. delete node_modules

  5. Всякий раз, когда мне нужно больше пакетов, я использую npm-package-downloader с аргументом -d, чтобы также загрузить все зависимости в виде tgz-файлов и скопировать их в каталог X

На моем автономном компьютере

Я импортирую tgz-файлы из каталога X и помещаю их в то же место Я настраиваю yarn-offline-mirror, как на моей онлайн-машине Импортируюугловой шаблон и установите необходимые пакеты с помощью yarn clean cache, за которым следует yarn --offline

Пока все пакеты tgz находятся на моей автономной машине, это работает как чудо (из-за пряжи.lock ).

Моя проблема

Я хочу добавить дополнительные пакеты на моей автономной машине. Пакеты присутствуют в автономном зеркале, потому что я скопировал их на компьютер. Когда я запускаю

yarn clean cache
yarn add <absolute-path-to-tgz-package> --offline

, возникают два возможных сценария:

  1. Пакет не имеет зависимостей, в этом случае он работает как положено
  2. Пакет имеет зависимости:в этом случае возникает следующая ошибка для каждой «отсутствующей» зависимости ( имя-пакета и версия-пакета являются заполнителями):

Не удалось найти версии для "имя-пакета", которое соответствует "версии-пакета" в нашем кэше. Обычно это происходит из-за отсутствия записи в файле блокировки. Запуск Yarn без флага --offline может помочь решить проблему.

Насколько я понимаю, пряжа должна каким-то образом знать, какие зависимостипакет требует. Но он должен знать, иначе он не может выдать эту конкретную ошибку. Итак, мой вопрос: как заставить пряжу искать зависимости в каталоге X ? Пакеты есть, так как я загружаю их с соответствующими зависимостями. И, очевидно, я не должен редактировать yarn.lock вручную. В документах по добавлению пряжи такая опция не указана (фактически, в ней даже нет флага --offline)

...