Допустим, у меня есть частный репозиторий NPM с областями действия, который находится за корпоративным брандмауэром. Я хотел бы установить свой проект на другом компьютере, который не будет подключаться к VPN, поэтому он не сможет получить доступ к этому частному репо.
Как мне настроить свой проект для простого импорта этих зависимостей из локальных папок и / или моего локального npm кэша и пропустить приватное хранилище?
То есть, если мой пакет. json файл имеет ...
"dependencies": {
"@privateRepo/some-library-framework": "4.2.1"
}
.. и я не могу получить доступ к серверу, но могу получить файлы, которые необходимы и были бы установлены из другой папки node_modules
, которая находится на машине, которая может получить доступ к репо.
I попытался взять файлы из пакетов в @privateRepo
и использовать npm cache add D:\path\to\lib\with\packageDotJsonInside
для каждого из них, но все равно получил ...
Not Found - GET https://registry.npmjs.org/@privateRepo%2some-library-framework - Not found
.. когда я пытался npm i
остальное.
Я думаю, это означает, что мне нужно что-то настроить в .npmrc
, как описано здесь ...
registry=https://registry.npmjs.org/
@test-scope:registry=http://nexus:8081/nexus/content/repositories/npm-test/
//nexus:8081/nexus/content/repositories/npm-test/:username=admin
//nexus:8081/nexus/content/repositories/npm-test/:_password=YWRtaW4xMjM=
email=…
... где вы обычно настраиваете аутентификацию, но где вы также настраиваете URL для пакета с областью действия. Я думаю, что я хочу настроить @privateRepo:registry=http://localhost/something/something
здесь.
Но я думаю, что это также подразумевает, что мне, по крайней мере, нужно создать локальный веб-сервер (или npm репо?) Для ответа на запросы (а затем, может быть, я ищу что-то вроде verdaccio ?).
Итак, в простейшем случае, есть ли способ заставить приложение использовать кэшированную версию или мне нужно больше шимить? Если нет, то как проще всего создать локальное репо для обслуживания этих пакетов вместо частного репо?