Я работаю в очень ограниченных условиях, что означает, что у меня нет доступа к Интернету. Я настроил все, чтобы импортировать Angular Template Project и установить все пакеты из автономного кэша. Я выполнил следующие действия:
На подключенном к сети компьютере
настроить yarn-offline-mirror
с обрезкой в false (каталог X )
создайте новое угловое приложение с ng new foo --skipInstall=true
установите пакеты с yarn (install)
, чтобы получить пряжу .lock и для хранения всех tgz-пакетов в каталоге X
delete node_modules
Всякий раз, когда мне нужно больше пакетов, я использую 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
, возникают два возможных сценария:
- Пакет не имеет зависимостей, в этом случае он работает как положено
- Пакет имеет зависимости:в этом случае возникает следующая ошибка для каждой «отсутствующей» зависимости ( имя-пакета и версия-пакета являются заполнителями):
Не удалось найти версии для "имя-пакета", которое соответствует "версии-пакета" в нашем кэше. Обычно это происходит из-за отсутствия записи в файле блокировки. Запуск Yarn без флага --offline может помочь решить проблему.
Насколько я понимаю, пряжа должна каким-то образом знать, какие зависимостипакет требует. Но он должен знать, иначе он не может выдать эту конкретную ошибку. Итак, мой вопрос: как заставить пряжу искать зависимости в каталоге X ? Пакеты есть, так как я загружаю их с соответствующими зависимостями. И, очевидно, я не должен редактировать yarn.lock вручную. В документах по добавлению пряжи такая опция не указана (фактически, в ней даже нет флага --offline
)