Я работаю над Nexus3 и пряжей.
Положение
- В конце концов, программа будет работать в частной сети
- Я буду выполнять некоторые задачи в открытой сетевой (исходной) среде и частной сети (целевой).
- Я буду извлекать зависимости в открытой сетевой среде и копировать целые файлы Nexus3 в приватные.
- В моем личном окружении я сделаю
yarn install
для компиляции проекта
То, что я сделал до сих пор (O
означает открытую сеть и P
означает частную):
- (O) Запустите Nexus3 в открытой сети и зарегистрируйте репозиторий. (предположим, что URL репо
http://o-hostname/repository/npm-public
)
- (O) Измените URL репо в терминале комендом
yarn config set repository "http://o-hostname/repository/npm-public"
- (O)
yarn install
и я могу видеть список зависимостей в Nexus3 UI.
- (O) сжимает файлы Nexus3 и перемещает их в приватную среду.
- (P) Запустите Nexus3 в частной сети и зарегистрируйте репо. (предположим, что URL репо
http://p-hostname/repository/npm-public
)
- (P) Изменить URL репо в терминале с помощью
yarn config set repository "http://p-hostname/repository/npm-public"
- (P) перейти в папку проекта и похвалить
yarn install --verbose
Проблема, с которой я сталкиваюсь:
- С некоторыми зависимостями работает нормально
- В некоторых пакетах, таких как
fbjs
* 1048, есть ошибка
- Я мог бы найти
fbjs
не в package.json
, а в yarn.lock
. например ...
create-react-class@^15.5.2, create-react-class@^15.5.3, create-react-class@^15.6.3:
version "15.6.3"
resolved "http://125.131.88.146:9080/repository/npm-public/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
integrity sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==
dependencies:
fbjs "^0.8.9"
loose-envify "^1.3.1"
object-assign "^4.1.1"
- Я могу найти fbjs в репозитории частной сети. Однако
fbjs
это не tarball, а JSON (который содержит местоположение tarball)
Предполагая
- Похоже, что Nexus3 не содержит суб-зависимостей для репо
Вопрос
- Как я могу рекурсивно (!) Загрузить все зависимости в частное хранилище.
Если мое предположение неверно, пожалуйста, дайте мне знать. Я такой новый с такими настройками. Спасибо за чтение этого длинного поста.
=========== Редактировать 190318 ===========
Я предполагаю, что Нексус тянет тарбол, если цель tgz
. Однако, если целью является расширение .npm
, он извлекает tgz с удаленного компьютера (где требуется подключение к Интернету) в соответствии с тем, что описано в файле npm
(Application / json).
Так что в конечном итоге я хотел изменить .npm
файлы в репозитории Nexus на .tgz
файлы расширения. Является ли это возможным?