Определить личный реестр в package.json
У нас есть частный репозиторий npm, основанный на Синопии
Что я должен определить в package.json
что некоторые пакеты будут установлены из Synopia, а не из глобального хранилища npm?
Если я установлю его из командной строки, я могу запустить: npm install <package_name> --registry <http://<server:port>
PS попробовал гуглить и заглянул в официальную документацию NPM но ничего не нашел.
2 ответа
Один из известных мне методов -.npmrc. Вы также можете использовать.npmrc также внутри проекта.
установить конфигурацию как это
registry = http://10.197.142.28:8081/repository/npm-internal/
init.author.name = Himanshu sharma
init.author.email = rmail@email.com
init.author.url = http://blog.example.com
# an email is required to publish npm packages
email=youremail@email.com
always-auth=true
_auth=YWRtaW46YWRtaW4xMjM=
auth может быть сгенерирован по имени пользователя: пароль echo -n 'admin:admin123' | Вывод openssl base64 YWRtaW46YWRtaW4xMjM=
Весь смысл Синопии является частным registry
и proxy
в то же время. Вы можете использовать uplink установить все ваши пакеты из одной точки входа в реестр. Sinopia может маршрутизировать в любой реестр, если локальное хранилище не может разрешить зависимость. По умолчанию он указывает на npmjs
,
Итак, если вы установите свою конфигурацию как
# a list of other known repositories we can talk to
uplinks:
npmjs:
url: https://registry.npmjs.org/
packages:
'@*/*':
# scoped packages
access: $all
publish: $authenticated
proxy: npmjs
'**':
# allow all users (including non-authenticated users) to read and
# publish all packages
#
# you can specify usernames/groupnames (depending on your auth plugin)
# and three keywords: "$all", "$anonymous", "$authenticated"
access: $all
# allow all known users to publish packages
# (anyone can register by default, remember?)
publish: $authenticated
# if package is not available locally, proxy requests to 'npmjs' registry
proxy: npmjs
Вы должны быть в состоянии разрешить все ваши зависимости независимо от источника каждой из них
кстати: sinopia
больше не поддерживается.